Javascript 变量声明,初始化变量用括号括起来

标签 javascript syntax

<分区>

在React native网站中,有如下一行代码:

var React = require('react-native');
var { TabBarIOS, NavigatorIOS } = React;

在示例的第二行中,TabBarIOS 和 NavigatorIOS 变量两边的括号是什么意思?

最佳答案

这称为解构赋值。这是 ECMAScript 6 规范中引入的新功能。

这是一个示例对象:

var test = {
  "hello": 1,
  "world": 2
}

如果我们这样解构它:

var {hello, world} = test;

这相当于做:

var hello = test.hello,
    world = test.world;

但是,您可以通过解构赋值做更多有趣的事情...

假设我们有这个对象:

var bucket = {
  ExampleObject: function(input){
    this.input = input.trim();
    return this.input;
  },

  TestingObject: function(example){
    this.example = example || {};
    console.log(this.example.input);
  }
}

只是为了记录,我给成员起了讨厌的名字......所以在解构时,我们可以像这样重命名它们:

var {ExampleObject: Example, TestingObject: Test} = bucket;

绑定(bind)模式遵循如下语法:

{ObjectMemberName}
// Or
{ObjectMemberName: VariableName}

更多信息,您可以查看ECMAScript 6 specification draftMDN documentation

关于Javascript 变量声明,初始化变量用括号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420815/

相关文章:

javascript - jQuery $(this) 不会将文本插入到我的元素中

linux - 了解部分 Linux Bash 脚本

java - 你需要关闭流吗?

php - PHP 中单引号和双引号字符串有什么区别?

javascript - OnReadyStateComplete 不会在 IFrame 上触发

javascript - 在 Puppeteer 中循环访问一组 url

javascript - 为什么只打印第二个函数调用的返回值?

javascript - 谷歌浏览器,无限循环和选择文本

python - 为什么在表达式后添加尾随逗号会创建一个元组?

mysql - 如何处理 '#mysql50#.cache'数据库?