什么是 Javascript [[环境]] 属性?

VSO*_*VSO 6 javascript closures

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

每当创建一个函数时,对创建该函数的词法环境的引用都存储在名为[[Environment]]的内部(意味着您不能直接访问或操作它)属性中(这是我们将要使用的符号)用于标记这些内部属性)。在我们的例子中,skulk 函数将保留对全局环境的引用,以及对 skulk 环境的报告函数。

我在我的函数上看到的只是[[Scopes]],它包含闭包作用域:

| 在此处输入图片说明

我有两个问题:

  1. [[Environment]]一个 Node.js 的东西,相当于[[Scopes]]前端吗?
  2. 这是检查函数的任何闭包数据的最佳位置吗?

use*_*806 5

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

Set F.[[Environment]] to Scope.
Run Code Online (Sandbox Code Playgroud)

虽然 ES5 文档称之为 [[Scope]]; 这里

Set the [[Scope]] internal property of F to the value of Scope.
Run Code Online (Sandbox Code Playgroud)