This指向
1.概念
1.this指向函数的直接调用者而非间接调用者
2.如果有new关键字,this指向new出来的那个对象
3.在DOM事件中,this指向目标元素
4.箭头函数的this指向他所在的函数级作用域,并且不可改变
2.案例
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);
})
}
}
4.obj对象中的this(2)
打印结果:
第一个[object Window]
第二个[object Window]
第三个[object Window]
第五个[object Object]
const abc ={
aaa(){
setTimeout(function(){
setTimeout(function(){
console.log('第一个'+this); //window
})
setTimeout(()=>{
console.log('第二个'+this); // window
})
})
setTimeout(()=>{
setTimeout(function(){
console.log('第三个'+this); // window
})
console.log('第四个'+this);
setTimeout(()=>{
console.log('第五个'+this); //abc
})
})
}
}
abc.aaa()