1. 程式人生 > >JavaScript綁定this

JavaScript綁定this

ava con this script 指定 console 定義變量 java ()

問題描述

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