ES6 中的箭头函数与方法声明
在深入研究 ES6 时,你可能会遇到以下问题:
var person = { name: "jason", shout: () => console.log("my name is ", this.name) }; person.shout(); // Prints "my name is "
目的是让函数访问 person 对象中的 name 属性。然而,控制台只打印“我的名字是。”
解释:
这种行为源于 ES6 中箭头函数的独特性质。与传统函数声明不同,箭头函数不绑定 this 关键字。相反,它们从周围的范围继承 this 绑定,在本例中是全局范围。
解决方案:
要解决此问题,您可以使用 ES6 方法声明模式,它保留了所需的绑定:
var person = { name: "jason", shout() { console.log("my name is ", this.name); } }; person.shout(); // Prints "my name is jason"
以上是ES6 中的箭头函数与方法声明:为什么'this”在箭头函数中不能按预期工作?的详细内容。更多信息请关注PHP中文网其他相关文章!