我尝试在 JS 对象内部使用箭头函数,但它没有获取对象属性的值。但是,如果我使用传统的函数表达式,它就可以正常工作。
这是一个例子,首先使用箭头函数:
const obj = {
name: "StackOveflow",
simpleMethod: () => `Hello, ${this.name}!`
};
console.log(obj.simpleMethod());
输出是:
Hello, undefined!
现在使用传统的函数表达式:
const obj = {
name: "StackOveflow",
simpleMethod: function () {
return `Hello, ${this.name}!`
}
};
console.log(obj.simpleMethod());
输出是:
Hello, StackOveflow!
为什么箭头函数获取不到属性名称?
期望箭头函数能够获取属性的值,其工作方式与传统函数表达式相同
箭头函数不知道它的上下文,它不是闭包。
另一方面,函数正确地绑定到“this”。