定义构造方法 createFun

__help = ->
    @__help__


extend = (child, parent)->
    child[key] = parent[key] for 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 0, 1 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 0, 1 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() 即可 不过比起文档与库分开的模式,库的大小会增加,不过确实很方便