我正要通過pace.js源和整個下面的函數來了,::理解純JS事件函數
Evented.prototype.trigger = function() {
var args, ctx, event, handler, i, once, _ref, _ref1, _results;
event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
if ((_ref = this.bindings) != null ? _ref[event] : void 0) {
i = 0;
_results = [];
while (i < this.bindings[event].length) {
_ref1 = this.bindings[event][i], handler = _ref1.handler, ctx = _ref1.ctx, once = _ref1.once;
handler.apply(ctx != null ? ctx : this, args);
if (once) {
_results.push(this.bindings[event].splice(i, 1));
} else {
_results.push(i++);
}
}
return _results;
}
};
現在認識純JS,是有點對我來說是一個挑戰,但我仍通過函數中使用的獨立組件和方法,但我真的無法弄清楚這個函數在插件中做了什麼。
有人可以解釋一下嗎?如果你能給我一個真正的,但一般的想法,這將是足夠好的。
也可以使用此功能獨立於插件pace.js?我插件pace.js似乎是用純js編寫的。
編輯:如果有人能夠評論每條線上發生了什麼,那將是非常友善的,如果您使用的技術術語很好。一旦我知道每條線上隱約發生什麼,我可以稍後提及mdn並理解。我瞭解JS方法和任何與Web API有關的事情,MDN有很多關於它的文檔,但是無論在哪裏,我都會看到event
這就是我感到困惑的地方。
代碼的哪些部分你不理解? – Bergi
@Bergi,每個部分都有'event'這個詞。 :) –
@Bergi,但我寧願如果每一行,不包括簡單的(變量聲明等),可以評論:我是否要求太多? :D –