コールバック/関数を別の関数にバインドまたはチェーンしたいと思います。javascript bind任意の関数へのコールバック
同様の質問は(任意の有効な回答なし)がありますが: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
それは可能ですか?
EDIT:bind
は概念的な用語ですが、多分あなたはchain
、trigger
あるいは別の用語のように、これを考えます。
しかし、インポートは、私の例ではeasyCallback()
が何らかの形で最初の1つのdoSomething()
に接続する必要がある2番目の関数またはコールバックです。
そして、doSomething()
が呼び出されるか、実行されるたびに、最初に終了した後にeasyCallback()
が実行されるようにします。
しかし、最初のものを書き換えたり書き換えたりすることなく、それらを「ラップする」ことはありません。
ちょうど1し、他の 'のvar callsBoth =機能()を呼び出す関数を定義{myEasyCallback(thirdParty.something ()); }); ' –
はバインドやチェーンではなく、関数をラップしていますが、私はあなたの提案に感謝します。 –