1. 程式人生 > 其它 >js中this的指向

js中this的指向

技術標籤: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 });