代码之家  ›  专栏  ›  技术社区  ›  VSO

Javascript[[Environment]]属性是什么?

  •  1
  • VSO  · 技术社区  · 7 年前

    Secrets of the Javascript Ninja 我试图找出函数的闭包变量存储在哪里。 [[Environment]] 函数标识符上可用的属性:

    创建的函数存储在内部(这意味着您无法访问或操作它) 直接)命名的属性 内部属性)。在本例中,skulk函数将保留对全局 环境,并向skulk环境报告函数。

    我在函数中看到的是 [[Scopes]] ,其中包含闭包范围:

    | enter image description here

    1. [[环境]] 一个Node.js和 [[范围]] 在前端?
    0 回复  |  直到 7 年前
        1
  •  5
  •   user3468806    6 年前

    here

    Set F.[[Environment]] to Scope.
    

    而ES5文档称之为[[Scope]]; here

    Set the [[Scope]] internal property of F to the value of Scope.
    
        2
  •  2
  •   redchicken    6 年前

    嗯。。。 . 因为两者都是在执行上下文的创建阶段创建的。

    我觉得 [[Environment]] [[Scope]] 完全不同。

    包含变量列表 可以在特定范围内访问的,这允许您搜索(范围链)变量。

    了解 词汇环境 . 另外,这是我的想法(不要太相信它,因为它可能是错误的),因为有一个环境,我认为你可以使用闭包。因为它指的是一个外部的词汇环境。

    2:这是检查函数闭包数据的最佳位置吗?

    对正如我在步骤1中所说的,我认为检查函数的闭包数据是合适的,因为它引用的外部词汇环境比它本身大。

    我希望我的意见对你有很大帮助。如果这是错误的,请留下评论。

    here1 here2