イベントサブスクリプションとして機能する関数のリストがある場合は、それらを実行して.call()
(下のB)、またはより直接的に(A)で呼び出す利点がありますか?コードは以下の通りです。私が見ることのできる唯一の違いは.call
で、this
がどのように設定されているかを制御できることです。それ以外に他の違いはありますか?Javascriptでイベントを作成する
$(function() {
eventRaiser.subscribe(function() { alert("Hello"); });
eventRaiser.subscribe(function(dt) { alert(dt.toString()); });
eventRaiser.DoIt();
});
var eventRaiser = new (function() {
var events = [];
this.subscribe = function(func) {
events.push(func);
};
this.DoIt = function() {
var now = new Date();
alert("Doing Something Useful");
for (var i = 0; i < events.length; i++) {
events[i](now); //A
events[i].call(this, now); //B
}
};
})();
これはすばらしい答えです...ありがとうございます! –
あなたは大歓迎です:) –