利用 arguments 和函数闭包实现函数重载
let addMethod = function(object,name,fn){
var old = object[name];
object[name] = function () {
if(fn.length === arguments.length){
return fn.apply(this,arguments);
}
else if(typeof old === "function" ){
return old.apply(this,arguments);
}
}
}
let p = function (params) {
}
addMethod(p,"Add",function (a) {
})
addMethod(p,"Add",function (a,b) {
})
addMethod(p,"Add",function (a,b,c) {
})