js中this的指向
阿新 • • 發佈:2021-01-31
技術標籤:js
this的指向
1、在普通函式中,指向window
2、在事件處理函式(普通函式)中,指向事件源
3、在物件中,誰呼叫指向誰
4、建構函式(類),指向例項化物件
5、在箭頭函式中,指向上一層(看箭頭函式所在的環境)
情況1:在普通函式中,指向window
var name = "ABC";
function foo() {
let name = 123;
console.log(this.name); //"ABC"
}
foo();
情況2:在事件處理函式中,指向事件源
document.addEventListener ("click",function(){
console.log(this); //document
});
情況3:在物件中,誰呼叫指向誰
let obj = {
name:"zs",
age:18,
say(){
console.log(this.name);
}
}
obj.say(); //zs
let obj1 = {
name:"ls"
}
obj1.say = obj.say;
obj1.say(); //ls
情況4:類(建構函式)中,指向例項化物件
class Stu {
constructor(){
this.name = "zs"
}
}
let stu1 = new Stu();
let stu2 = new Stu();
console.log(stu1.name); //z3
console.log(stu2.name); //z3
stu1.name = "ls";
console.log(stu1.name); //ls
console.log(stu2.name); //z3
情況5:在箭頭函式中,指向上一層(看箭頭函式所在的環境)
document.addEventListener( "click",function(){
let lo = () => console.log(this);
lo();//document
});
document.addEventListener("click",e => {
console.log(this); //window
});