我想將回調函數或函數鏈接到另一個函數。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 ()); });' –
這是不綁定或鏈,即封裝函數,但我感謝您的建議。 –