【发布时间】:2015-11-05 03:46:24
【问题描述】:
function modifyFunction(f) {
return function () {
var returnValue = f.apply(this, arguments);
console.log(returnValue);
if (returnValue == undefined) {
return this;
} else {
return returnValue;
}
};
}
function modifyMethod(o, m) {
if (o.hasOwnProperty(m)) {
if (o[m] instanceof Function) {
o[m] = modifyFunction(m);
}
}
}
var o = {
num: 0,
add: function (x) {
return this.num += x;
},
sub: function (x) {
return this.num -= x;
}
};
modifyMethod(o, "add");
o.add(2).add(4);
console.log(o.num); // o.num = 6
modifyMethod(o, "sub");
o.sub(1).add(3).sub(5);
console.log(o.num); // o.num = 3
我将如何使它在“if(o[m] instanceof Function)”内部的 modifyMethod 函数中与 modifyFunction 函数在发送 o[m] 时返回的值相等?我正在努力使它成为可链接的,但我很难理解这一点。
【问题讨论】:
-
能否请您重新表述您的问题?我不清楚你想要什么。
标签: javascript function object methods method-chaining