美文网首页
JavaScript函数重载

JavaScript函数重载

作者: 六寸光阴丶 | 来源:发表于2020-06-24 20:23 被阅读0次

    源代码

    let addMethods = (object, name, fun) => {
      const old = object[name]
      object[name] = function () {
        if (fun.length === arguments.length) {
          return fun.apply(this, arguments)
        } else if (typeof old === 'function') {
          return old.apply(this, arguments)
        }
      }
    }
    
    let obj = {}
    
    addMethods(obj, 'fun', function (params) {
      console.log(params)
    })
    
    addMethods(obj, 'fun', function (params1, params2) {
      console.log(params1, params2)
    })
    
    addMethods(obj, 'fun', function (params1, params2, params3) {
      console.log(params1, params2, params3)
    })
    

    测试

    obj.fun(1)
    obj.fun(1, 2)
    obj.fun(1, 2, 3)
    obj.fun(1)
    obj.fun(1, 2)
    obj.fun(1, 2, 3)
    
    

    相关文章

      网友评论

          本文标题:JavaScript函数重载

          本文链接:https://www.haomeiwen.com/subject/cfedfktx.html