如何解决调用 this.prop 时,它的行为与直接调用时的情况不同
我试图以箭头函数的方式和普通的方式来理解这之间的区别。然而,每次似乎我有了这个想法时,总觉得少了点什么,所以我开始稍微清理空气,发现了这一点,经过一段时间的编码后,我发现了这种差异。
class Func {
constructor(name) {
this.prop = name;
}
arrowLogger(){
let self = (() => {
return this.prop;
})();
console.log(self);
}
simpleLogger(){
console.log(this.prop);
}
}
let example = new Func(1);
global.prop = 2;
console.log(example.arrowLogger());
console.log(example.simpleLogger())
为什么 2 个 console.log 打印出相同的数字?
为什么下一篇文章的答案不一样?
class Func {
constructor(name) {
this.prop = name;
}
arrowLogger(){
setTimeout(() => {
console.log("arrow this:")
console.log(this)
console.log("arrow:",this.prop);
},0)
}
simpleLogger(){
setTimeout( function (){
console.log("simple this:")
console.log(this)
console.log("simple:",this.prop)
},0)
}
}
let example = new Func(1);
global.prop = 2;
console.log(example.arrowLogger());
console.log(example.simpleLogger())
附言我在 Node.js 中使用了 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。