redux的dispatch()中的[[Scopes]]是什么

Uch*_*mar 5 javascript google-chrome reactjs redux react-redux

我正在使用redux做出反应.这使得调度可用作组件中的道具.所以,当我console.log(this.props)在调度键下的日志中看到以下对象时.

[[Scopes]]: Scopes[5]
   0:Closure
   1:Closure
   2:Closure (createThunkMiddleware)
   3:Closure
   4:Global
Run Code Online (Sandbox Code Playgroud)

有人可以解释这是什么?

nop*_*ppa 10

[[Scopes]]是Chrome开发人员工具在C++中内部添加和使用的私有属性.它显示函数范围内的变量,即可以从该函数访问哪些变量.

例如:

function a() {
  var foo = 'foo';
  var obj = {
    bar: function () {
      return foo;
    }
  };
  console.log(obj);
}
a();
Run Code Online (Sandbox Code Playgroud)

在这里,附加到属性的函数obj.bar具有变量foo在其范围内,所以当我们检查[[Scopes]]欢迎使用属性的obj.bar,我们看到像

[[Scopes]]: Scopes[2]
0: Closure (a)
  foo: "foo"
1: Global
  (all global variables)
Run Code Online (Sandbox Code Playgroud)

您可以在控制台中手动检查这些属性,这可能有助于调试,但您无法使用JavaScript访问它们,您不应该在应用程序代码中关注它们.

另请参阅:SO - 以编程方式访问功能位置.