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

标签 javascript reactjs google-chrome redux react-redux

我正在使用 redux 和 react。这使得 dispatch 可以作为组件中的 Prop 使用。因此,当我 console.log(this.props) 时,我在调度键下的日志中看到以下对象。

[[Scopes]]: Scopes[5]
   0:Closure
   1:Closure
   2:Closure (createThunkMiddleware)
   3:Closure
   4:Global

谁能解释一下这是什么?

最佳答案

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

例如:

function a() {
  var foo = 'foo';
  var obj = {
    bar: function () {
      return foo;
    }
  };
  console.log(obj);
}
a();

这里,附加到属性 obj.bar 的函数在其范围内有变量 foo,所以当我们检查 [[Scopes]] obj.bar 的属性我们看到类似的东西

[[Scopes]]: Scopes[2]
0: Closure (a)
  foo: "foo"
1: Global
  (all global variables)

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

另请参阅:SO - Access function location programmatically .

关于javascript - redux 的 dispatch() 中的 [[Scopes]] 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506745/

相关文章:

javascript - Redux 中的性能和 mergeProps

php - 在 Wordpress 插件中包含来自 node_modules 的库

javascript - 如何打开包含浏览器信息的页面?

javascript - 使用javascript从字符串中提取数字

javascript - 动态插入数据时,highcharts 会更改系列颜色

javascript - ReactJS:单击按钮下载 CSV 文件

html - 绝对位置和 css3 的 Chrome 渲染错误

javascript - 无法从 React 应用程序中销毁 AWS Cognito session

javascript - Ember 每个循环加倍。使用内部每个循环变量的值绑定(bind)到外部每个循环的变量中名称相同的属性

python - Selenium Webdriver 中的 Keys.ESCAPE(python)