ES6 箭头函数中的this

箭头函数中的this

箭头函数本身没有this
箭头函数中的this在向外层作用域中,一层层查找this,直到有this的定义

        const obj = {
            aaa() {
                setTimeout(function () {
                    console.log(this);    //window
                })
                
                setTimeout(() => {
                    console.log(this);    //obj对象
                })
            }
        }
        
        
        setTimeout(function () {
            console.log(this);            //window
        },1000)
        
        console.log(this)                //箭头函数相当于在这里找this所以是window
        
        setTimeout(() => {
            console.log(this);            //window
        },1000)
        
        
                const obj = {
        aaa() {
            setTimeout(function() {
                setTimeout(function() {
                    console.log(this); //window
                })

                setTimeout(() => {
                    console.log(this); //window
                })
            })

            setTimeout(() => {
                setTimeout(function() {
                    console.log(this); //window
                })

                setTimeout(() => {
                    console.log(this); //obj 往上找没有,最后在aaa找到this
                })
            })
        }
    }
    obj.aaa()

你可能感兴趣的:(es6this)