1.this指向函数的直接调用者而非间接调用者
2.如果有new关键字,this指向new出来的那个对象
3.在DOM事件中,this指向目标元素
4.箭头函数的this指向他所在的函数级作用域,并且不可改变
1.此时function()中传入的是window,所以this指向Window
<script>
setTimeout(function () { console.log(this);
})
</script>
2.向外查找 这里的this = window
<script>
setTimeout(() => {
console.log(this);
})
</script>
3.obj对象中的this
1.第一个this中function传入的是window所以this打印的是window,
第二个this向外查找,而对象中的this指向obj,所以this打印的是obj
const obj = {
aaa() {
setTimeout(function () {
console.log(this);
})
setTimeout(() => {
console.log(this);
})
}
}
原文:https://www.cnblogs.com/ajaXJson/p/14919820.html