事件函数内部,this指向谁?(谁调用该函数,this指向谁)
1.事件函数内部的this:指向绑定事件的DOM对象
2.普通函数内部this:指向window对象
3.定时器函数内部this:指向window对象
4.对象的方法内部this:指向对象本身
“谁调用,this指向谁”
箭头函数内部this指向问题
1.看箭头函数 定义 在什么 位置 ,this与箭头函数定义位置有关
如果在局部作用域,箭头函数的this指向局部作用域所指向的内容
如果在全局作用域,箭头函数的this指向window
let fun3=()=>{
console.log(this);//指向window
}
fun3()
// (2)
let obj={
uname:'jon',
age:18,
eat:function(){//eat函数是个局部作用域
console.log(this);//obj
return (food)=>{
console.log(this);//obj
}
}
}
obj.eat()
console.log(obj.eat());
let fn=obj.eat()
fn()
// (3)
// obj2只是一个对象,不能形成作用域,所以obj2就在全局作用域中
// 所以内部函数也处在全局作用域中,
let obj2={
uname:'jon',
age:18,
speak:()=>{
console.log(this);//window
}
}
// (4)
btn.onclick=function(){//函数是局部作用域,这个函数指向btn
setTimeout(()=>{
console.log(this);//指向btn
},1000)
}