首页 > 其他 > 详细

this的指向

时间:2021-02-01 11:51:18      阅读:25      评论:0      收藏:0      [点我收藏+]
五种指向
 
情况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: "z3",
age: 18,
say() {
console.log(this.name);
}
}
obj.say(); //z3
let obj1 = {
name: "l4"
}
obj1.say = obj.say;
obj1.say(); //l4

 

//情况4:在类(构造函数)中,指向实例化对象
 
代码:
class Stu {
constructor() {
this.name = "z3";
}
}
let stu1 = new Stu();
let stu2 = new Stu();
console.log(stu1.name); //z3
console.log(stu2.name); //z3
stu1.name = "l4";
console.log(stu1.name); //l4
console.log(stu2.name); //z3

 

情况5:在箭头函数中,看箭头函数所在的环境
 
代码:
document.addEventListener("click", foo);

 

// document.addEventListener("click", e => {
// console.log(this); //window
// });

 

function foo() {
let lovo = () => console.log(this);
lovo(); //#document
}

this的指向

原文:https://www.cnblogs.com/liu01/p/14355168.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!