我有一个带回调方法的对象,我应该扩展它。
对象是elementHandle
,方法onCheckURLDone(result, data)
在某处内部调用。我需要执行一些扩展代码并回调原始函数代码。
我试过这样的事情:
var cachedCallback = elementHandle.onCheckURLDone;
elementHandle.onCheckURLDone = (function(result, data){
console.log("Some extended code...");
return function(result, data) {
return cachedCallback.apply(elementHandle, arguments);
}
});
但这里没有调用原始代码。怎么了?
答案 0 :(得分:3)
试试这个:
var cachedCallback = elementHandle.onCheckURLDone;
elementHandle.onCheckURLDone = function (result, data) {
console.log('Some extended code...');
return cachedCallback.apply(elementHandle, arguments);
};
在返回的函数内部调用代码中的原始回调。所以,如果你想要它被执行,你必须这样称呼它:
elementHandle.onCheckURLDone(someResult, someDate)(someResult, someDate);
我想这不是你想要的。