ES6 箭头函数中“this”的词法绑定
ES6 中的箭头函数以其独特的“this”词法绑定行为而闻名。 ”与“this”动态绑定的其他 JavaScript 函数不同,箭头函数维护词法范围,将“this”分配给与其封闭上下文相同的值。
为了说明这个概念,请考虑以下代码:
var testFunction = () => { console.log(this) }; testFunction();
与传统 JavaScript 行为相反,其中“this”引用全局对象(窗口),箭头函数捕获封闭上下文的“this”值。在此示例中,“this”将引用全局范围(窗口),因为 testFunction 是在任何对象外部定义的。
此外,词法绑定确保“this”在箭头函数的整个生命周期中保持一致。考虑以下示例:
function Person(){ this.age = 0; setInterval(() => { this.age++; // |this| properly refers to the person object }, 1000); } var p = new Person();
这里,箭头函数捕获 Person 对象的“this”值,允许它访问和修改其属性(在本例中,递增age 属性)。此行为可确保“this”始终引用正确的上下文,无论箭头函数如何调用或执行上下文如何更改。
以上是词法绑定如何影响 ES6 箭头函数中的'this”关键字?的详细内容。更多信息请关注PHP中文网其他相关文章!