Если у меня есть список функций, которые служат в качестве подписок на события, есть ли преимущество в том, чтобы проходить через них и вызывать их с помощью .call()
(B ниже) или более напрямую (A)? Код ниже. Единственное отличие, которое я вижу, в том, что с .call
вы можете контролировать то, что установлено на this
. Есть ли какая-то другая разница?
$(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
}
};
})();