理解jquery绑定函数中的bind(this)

时间:2014-08-04 23:13:14

标签: jquery scope bind

我在编写良好的jquery代码中看到了很多以下代码,我在网上搜索试图找到答案。

$(document).bind('someEvent',function(arg1) {
   this.something
}.bind(this));

初始绑定调用中函数声明后的.bind的目的是什么?如果可以编写一个简单的示例来显示在嵌套绑定和没有嵌套绑定的情况下的视觉差异,那将非常有用。

我知道这与全球范围和本地范围有关。我认为。

非常感谢

肖恩

1 个答案:

答案 0 :(得分:1)

jQuery的绑定只是一种附加事件处理程序的方法。例如,这两个基本相同

$(document).click(function(){});
$(document).bind('click',function(){});

最初使用Bind代替现在首选的on方法(从版本1.7开始)。

Javascript的绑定是一种将词汇环境附加到函数的方法。从本质上讲,它会覆盖this作为传递的上下文。这两个是等价的

var self = this;
$(document).click(function(){
 console.log(self);
});

$(document).click(function(){
 console.log(this);
}.bind(this));