函数自带说明文档模式

Posted by Sir0xb on 2015-05-11 14:24:38 +0800

定义构造方法 createFun

__help = ->
    @__help__
 
 
extend = (child, parent)->
    child[key= parent[keyfor key of parent when parent.hasOwnProperty key
    return child
 
extend extend,
    help    : __help
    __help__: """
exnted 函数用于扩展对象
第一个参数:需要扩展的对象
第二个参数:需要增加的属性
返回:被扩展后的对象
"""
 
 
createFun = (newFun, helpStr)->
    extend newFun,
        help    : __help
        __help__: helpStr
 
extend createFun,
    help    : __help
    __help__: """
createFun 函数用于创建带帮助函数的函数
第一个参数:函数体
第二个参数:帮助说明
"""

 

使用方式

lpad = createFun (pram...)->
    switch pram.length
        when 01 then return false
        when 2
            while "#{pram[0]}".length < pram[1]
                pram[0= " #{pram[0]}"
        else
            while "#{pram[0]}".length < pram[1]
                pram[0= "#{pram[2]}#{pram[0]}"
 
    return pram[0]
,
                 """
lpad 补位函数(从左)
第一个参数:需要补位的字符串
第二个参数:最终补位后的长度
第三个[可选]:用于补位的字符串,默认空格
"""
 
 
rpad = createFun (pram...)->
    switch pram.length
        when 01 then return false
        when 2
            while "#{pram[0]}".length < pram[1]
                pram[0= "#{pram[0]} "
        else
            while "#{pram[0]}".length < pram[1]
                pram[0= "#{pram[0]}#{pram[2]}"
    return pram[0]
,
                 """
lpad 补位函数(从右)
第一个参数:需要补位的字符串
第二个参数:最终补位后的长度
第三个[可选]:用于补位的字符串,默认空格
"""

想要知道函数怎么用,只需要 [functionName].help() 即可 不过比起文档与库分开的模式,库的大小会增加,不过确实很方便