我想将回调函数或函数链接到另一个函数。javascript将回调函数绑定到任何函数
有一个类似的问题(没有任何有效的答案):jQuery , bind a callback to any function
但是,对我来说我不希望仅限于jQuery的境界。 我在寻找更广泛的答案,我想知道是否有可能与香草JavaScript或库以外的jQuery。
例子:
// a function which I don't want or I can't edit it's body
var thirdPartyObject = {
doSomething: function(args) {
// a lot of code
console.log('doing stuff: ' + args);
}
};
// my function
var easyCallback = function() {
// processing stuff
console.log('doing more stuff');
}
// the bind
magicLibrary.bind(thirdPartyObject.doSomething, easyCallback);
// run
thirdPartyObject.doSomething(1);
thirdPartyObject.doSomething(10);
当我运行这个 “码”,下面的输出代表我在寻找的行为:
doing stuff: 1
doing more stuff
doing stuff: 10
doing more stuff
这可能吗?
编辑:在bind
是一个概念性的名词,也许你觉得这像一个chain
,trigger
甚至另一个术语。
但是导入是第二个函数或回调,在我的例子中是easyCallback()
必须以某种方式连接到第一个doSomething()
。
而且每次调用或执行doSomething()
我都希望easyCallback()
在第一次完成后也能执行。
但没有“包裹”他们周围或不重写第一个。
只要定义调用一个,然后其他'VAR callsBoth =()函数的函数{myEasyCallback(thirdParty.something ()); });' –
这是不绑定或链,即封装函数,但我感谢您的建议。 –