1.对象方法中的this:被谁调用就指向谁。
代码如下:
let obj={
a:1,
say(){
console.log(this);
}
}
// 被obj调用,指向obj
obj.say();
运行结果:
2.构造函数中的this:指向被new时创建的对象。
代码如下:
function Dog(name) {
this.name = name;
console.log(this);
}
let d1 = new Dog('小黑');
console.log(d1);
运行结果:
3.事件处理函数中的this:给谁添加事件就指向谁。
代码如下:
document.onclick=function(){
console.log(this); // 指向document
}
运行结果:
4.普通全局函数中的this:指向window。
代码如下:
function Person(){
console.log(this);
}
Person();
运行结果:
5.箭头函数中的this:没有自身的this,与上下文一致。
代码如下:
document.onclick=function(){
// 指向document
console.log(this);
// 没有自己的this,指向document
setTimeout(() => {
console.log(this);
}, 1000);
}
运行结果: