源代码
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)
网友评论