this-关键字
this在js中是一个关键字 - 可以写在任何一个地方
在不同的地方的意思也是不一样的
1.在全局中:this代表window
console.log(this);
2.在普通函数中:this代表window
function fn(){
console.log(this);
}
fn()
3.在事件中:this代表事件源
document.onclick = function(){
console.log(this);
}
4.自调用函数:this代表window
(function(){
console.log(this);
})()
5.定时器中:this代表window
setTimeout(function(){
console.log(this);
})
6.对象的方法中:this代表当前对象
// var obj = {
// name:"zhang三",
// age:12,
// eat:function(){
// console.log("能吃");
// console.log(this);
// }
// }
// obj.eat()
7.箭头函数:this代表当前箭头函数所在作用域中的this
箭头函数中的this代表箭头函数上一行代码中的this
document.onclick = function(){
// setTimeout(()=>{
// console.log(this);
// })
// }
总结:
1.全局:window
2.普通函数:window
3.自调用:window
4.定时器:window
5.对象方法:对象
6.事件:事件源
7.箭头函数:上一行代码的this
从对象方法 - this代表对象
function fn(){ console.log(this); }
普通函数 - 相当于window对象的一个方法
定时器其实就是window的方法,所以定时器中的this就是window对象
window.setTimeout(function(){ // console.log(this); // })
自调用函数其实也是window的方法 - window对象
(function(){ console.log(this); })()
全局:this
箭头函数:上一行

浙公网安备 33010602011771号