我从jQuery源代码中遇到了这个片段(事件处理):
var events = ['click', 'focus', 'blur', …];
jQuery.each(event,function(i,name){
jQuery.prototype[name] = function(fn){
return this.bind(name,fn);
};
});
有人可以向我解释一下吗? this.bind(name,fn);
如何与element.addEventListener('event','callback()')
一样工作?
我知道javascript的基础知识,但我不知道JavaScript的更高级部分。自从我自学了以后,我的JavaScript知识就有很多漏洞。如果有人知道一个好的来源,我可以从中学到更高级的JavaScript,我也希望听到。
谢谢。
答案 0 :(得分:4)
很简单,我们在数组[click, focus ...]
中包含了所有事件,我们很容易在该数组上应用foreach,下一部分代码为jQuery原型$.fn.click()
分配一个函数,该函数将成为$('#me').click()
,最后这个click();
函数调用$.fn.bind();
,稍后会调用addEventListener()
,就是这样。
如果您仍然想知道jQuery中addEventListener()
读取about bind()
的位置。