1.在标准函数中
window.color = "red";
let o ={
color:'blue'
}
function sayColor(){
console.log(this.color);
}
sayColor();
o.sssColor = sayColor;
o.sssColor();
- 在标准函数中,this引用的是把函数当成方法调用的上下文对象。
- 在网页的全局上下文调用函数时,this指向windows。
- 使用对象调用函数的话,函数中的this会指向该对象。
2.在箭头函数中
window.color = "red";
let o ={
color:'blue'
};
let sayColor = () => console.log(this.color);
sayColor();
o.ssColor = sayColor;
o.ssColor();
- 上面例子中,this不管怎么调用都是window对象,因为这个箭头函数是在window上下文中定义的。
function King(){
this.color = "red";
setTimeout(()=>console.log(this.color),1000);
}
function King1(){
this.color = "blue";
setTimeout(function(){console.log(this.color)},1000);
}
new King();
new King1();
- 箭头函数中的this会保留定义该函数时的上下文。