有人可以使用.bind()函数向我解释这段代码吗?

时间:2014-01-07 03:04:29

标签: javascript jquery javascript-events

我从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,我也希望听到。

谢谢。

1 个答案:

答案 0 :(得分:4)

很简单,我们在数组[click, focus ...]中包含了所有事件,我们很容易在该数组上应用foreach,下一部分代码为jQuery原型$.fn.click()分配一个函数,该函数将成为$('#me').click() ,最后这个click();函数调用$.fn.bind();,稍后会调用addEventListener(),就是这样。

如果您仍然想知道jQuery中addEventListener()读取about bind()的位置。