欢迎光临
我们一直在努力

关于js的bind(this)

回调函数后加bind(this),是因为回调函数形成了闭包(也就是一个函数中还有另一个函数),绑定this后这个回调函数的this,变量指向全局变量。

function bindThis() {
    this.text="测试bindThis"
    setTimeout(function () {
        console.log("使用BindThis:\t"+this.text); // 使用BindThis:   测试bindThis
    }.bind(this), 2000);
    setTimeout(function () {
        // potentially invalid usage of this
        console.log(this.text); // 输出 undefined
    }, 4000);
    setTimeout(() => {
        console.log("使用箭头函数:\t"+this.text); // 使用箭头函数:   测试bindThis
    }, 6000);
}
bindThis()

通过上述方法,我们可以看出,bind(this)与箭头函数返回结果一致。

与call、apply区别

bind与apply、call最大的区别就是:bind不会立即调用,其他两个会立即调用

赞(1)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 关于js的bind(this)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址