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

时间:2018-08-08 13:36:04

标签: javascript closures

我正在阅读Secrets of the Javascript Ninja,并试图找出函数的闭包变量的存储位置。[[Environment]]属性可以在函数标识符上找到:

  

每创建一个函数,便会引用一个词法环境,   创建的函数存储在内部(这意味着您无法访问或操纵它   直接)名为 [[[Environment]] 的属性(这是我们将用来标记这些属性的符号   内部属性)。在我们的例子中,skulk函数将保留对全局变量的引用。   环境,并且对skulk环境具有报告功能。

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

| enter image description here

我有两个问题:

  1. [[Environment]]是Node.js事物,还是前端的[[Scopes]]等同物?
  2. 这是检查函数上任何闭合数据的最佳位置吗?

1 个答案:

答案 0 :(得分:0)

看起来[[Scope]]是[[Environment]]的旧名称; here

Set F.[[Environment]] to Scope.

ES5文档将其称为[[Scope]]; here

Set the [[Scope]] internal property of F to the value of Scope.