理解 ES6 箭头函数中的“this”
在 JavaScript 中,this 的值取决于使用它的上下文。使用箭头函数时,“词法绑定”的概念变得相关,它决定了 this 的行为。
箭头函数从定义它们的封闭上下文继承 this 的值。与常规函数不同,箭头函数不会为此创建自己的作用域。考虑以下代码:
var testFunction = () => { console.log(this); }; testFunction();
这里,箭头函数 testFunction 从其封闭上下文(在本例中为全局范围)捕获 this 的值。因此,console.log(this) 将输出全局对象。
相反,常规函数可以为此创建自己的作用域。例如:
function Person() { this.age = 0; const increaseAge = function() { this.age++; // `this` refers to the Person object }; increaseAge(); } const p = new Person();
在此示例中,increaseAge 函数嵌套在 Person 构造函数中。当它被调用时,this 指的是 Person 类的实例,因为它是使用 new 关键字创建的。
总而言之,箭头函数从其封闭上下文继承 this 的值,确保它与周围的代码。此行为与常规函数不同,常规函数为此创建自己的作用域。理解这一关键差异对于在 JavaScript 开发中正确处理箭头函数中的这一点至关重要。
以上是与常规函数相比,ES6 箭头函数中'this”的工作方式有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!