箭頭函數中this的指向理解

測試代碼:

<script>
    setTimeout(() => {
        console.log(this) // window對象
    }, 1000)
    
    const obj = {
        test() {
            setTimeout(() => {
                console.log(this) // obj對象
            }, 1000)

            setTimeout(function () {
                console.log(this) // window對象

                setTimeout(() => {
                    console.log(this) // window對象
                }, 1000)
            }, 1000)
        }
    }
    obj.test()
</script>

運行結果:
在這裏插入圖片描述
箭頭函數中的this是如何定義的呢?
由上測試可見,箭頭函數中的this會向外層作用域中一層層查找,直到有this的定義。換句話說,箭頭函數中的this引用的是最近作用域的this。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章