我试图了解箭头函数在 JS 中的工作原理。让我困惑的一件事是:
let obj1 = { // MDN states that object literal does not create a new scope but I didn't find
// any detailed explanation why
name: "benny",
getName: () => {
console.log(this.name);
},
};
obj1.getName(); // prints "undefined"
class myObj {
constructor() {
this.name = "benny";
this.getName = () => {
console.log(this.name);
};
}
}
let obj2 = new myObj();
obj2.getName(); //prints "benny"
有人可以解释一下为什么对象文字不创建新作用域,而调用“new”却创建新作用域吗?(我一直认为对象字面量和“new”运算符是相等的;我在 MDN 中没有找到正确的解释。)我找到了关于new 运算符如何工作的解释。但我不清楚为什么对象文字的工作方式不同。
子衿沉夜
holdtom
大话西游666
相关分类