js 函数重载
程序员文章站
2022-08-06 10:05:51
简单定义:根据不同参数长度来实现让同一个函数,进行不同处理。 使用: 测试: ......
简单定义:根据不同参数长度来实现让同一个函数,进行不同处理。
function addMethod (obj, name, fun) { let old = obj[name] obj[name] = function () { if (fun.length === arguments.length) { return fun.apply(this, arguments) } else if (typeof old === 'function') { return old.apply(this, arguments) } } }
使用:
var a = {} addMethod(a, 'test', function(x){console.log(x)}) addMethod(a, 'test', function(x, y){console.log(x+y)}) addMethod(a, 'test', function(x, y, z){console.log(x+y+z)}) // test 是function名字,当参数长度不一样时候,执行的test不一样
测试:
a.test('s') > s a.test(1) > 1 a.test(1,2) > 3 a.test('1','2') > 12 a.test('1','2','3') > 123 a.test(1,2,3) > 6
上一篇: 公司召开全员大会
下一篇: Response.Flush的使用心得