MST

星途 面试题库

面试题:JavaScript 中箭头函数的 this 指向问题

请分析以下代码中箭头函数内 this 的指向,并解释原因: ```javascript function outerFunction() { this.value = 10; const arrowFunction = () => { console.log(this.value); }; arrowFunction(); } new outerFunction(); ```
47.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 箭头函数内 this 的指向:箭头函数内的 this 指向 outerFunction 构造函数创建的实例对象。
  2. 原因
    • 箭头函数没有自己的 this 绑定,它会从其所在的词法作用域中继承 this
    • outerFunction 函数内部定义箭头函数 arrowFunction,此时词法作用域是 outerFunction 的作用域。
    • 当使用 new outerFunction() 调用 outerFunction 时,thisouterFunction 内部指向新创建的实例对象。箭头函数从这个词法作用域继承 this,所以箭头函数内的 this 也指向 outerFunction 创建的实例对象,从而可以访问到实例对象上的 value 属性。最终输出 10