注:使用了jQuery

当我们为HTML元素添加监听绑定外部函数的时候,是这样写的

$("#item").addEventListener("click", doSomething);
function doSomething() {
    //这里的this指向HTML元素对象,可操作DOM
    $(this).remove();
}

外部函数里的this指向的是HTML元素对象,但如果我们需要访问window全部变量呢?

这时我们可以使用bind()方法指定外部函数的this指向。

this.x = "xxx";
$("#item").addEventListener("click", doSomething。bind(this));
function doSomething() {
    //这里的this指向全局变量
    alert(this.x);
}

这时,外部函数的this就可以指向window以访问全部变量了。

核心要点:使用bind()方法可以指定外部函数的this指向,不加bind则该函数的this默认指向HTML元素对象。