You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何从函数访问父级变量?附代码示例及术语问询

访问外部作用域变量x的方法及对应技术概念

解决方法

你的代码中,函数内部声明的let x = "Welcome"遮蔽了外部作用域的同名变量x。要访问外部的x,可以采用以下两种方式:

  • 提前保存外部变量的引用
    在函数外部将x赋值给一个新变量,在函数内使用该变量即可避开遮蔽:

    let x = 5;
    const outerX = x;
    const f = (n: number) => {
      let x = "Welcome";
      return outerX * n; // 此处使用的是外部的x值
    };
    
  • 通过全局对象访问(仅适用于外部x处于全局作用域的场景)
    如果外部x是全局变量,可使用globalThis(跨浏览器/Node.js环境通用)直接访问全局作用域的变量:

    let x = 5;
    const f = (n: number) => {
      let x = "Welcome";
      return globalThis.x * n; // 访问全局作用域的x
    };
    

技术名称

内部作用域的同名变量覆盖外部作用域变量的现象,技术上称为变量遮蔽(Variable Shadowing)。我们访问被遮蔽的外部变量的操作,本质是突破变量遮蔽的限制,核心概念即为变量遮蔽。

内容的提问来源于stack exchange,提问作者Wisam Jbori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:16:18