箭头函数中的 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()