<分区>
在React native网站中,有如下一行代码:
var React = require('react-native');
var { TabBarIOS, NavigatorIOS } = React;
在示例的第二行中,TabBarIOS 和 NavigatorIOS 变量两边的括号是什么意思?
标签 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 draft或 MDN documentation
关于Javascript 变量声明,初始化变量用括号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420815/