文章目录

addEventListener绑定的外部函数中的this指向

由 月琳 发布
  | 2163 次浏览

注:使用了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元素对象。


版权属于:月琳cc
本文链接:https://kerrinz.com/archives/6.html
作品采用《知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议》进行许可,转载请务必注明出处!

暂无评论

发表评论