JavaScript绑定this

Posted weiyinfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript绑定this相关的知识,希望对你有一定的参考价值。

问题描述

var a = {
    one: 1,
    haha() {
        console.log(this.one)
    }
}
setTimeout(a.haha, 1000)

在上例中,函数haha引用了this.one,而定时器结束之后调用的haha传入的this并不是a,输出结果this.one是未定义变量。

方法一:使用箭头函数的方式设置回调

var a = {
    one: 1,
    haha() {
        console.log(this.one)
    }
}
setTimeout(() => {
    a.haha()
}, 1000)

方法二:手动指定this

var a = {
    one: 1,
    haha() {
        console.log(this.one)
    }
}

function go(func) {
    func.bind(a).call()
}

go(a.haha)

以上是关于JavaScript绑定this的主要内容,如果未能解决你的问题,请参考以下文章

javascript arrow功能这个绑定片段。

一文搞定JavaScript的this指向问题

javascript中的this绑定

javascript--this机制

sublime text 3 添加 javascript 代码片段 ( snippet )

关于 JavaScript 中 this 指向的理解