cap*_*ill 97 javascript ecmascript-6 webpack
我以前没有看过这种语法,我想知道它的全部内容.
var { Navigation } = require('react-router');
Run Code Online (Sandbox Code Playgroud)
左侧的括号抛出语法错误:
意外的标记 {
我不确定webpack配置的哪个部分正在转换或者语法的目的是什么.这是和谐的事吗?有人可以开导我吗?
Rud*_*chi 107
这是解构分配.这是ECMAScript 2015的新功能.
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;
Run Code Online (Sandbox Code Playgroud)
相当于:
var AppRegistry = React.AppRegistry;
var StyleSheet = React.StyleSheet;
var Text = React.Text;
var View = React.View;
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 104
解构赋值语法是一种JavaScript表达式,可以使用反映数组和对象文字构造的语法从数组或对象中提取数据.
资料来源: MDN的解构分配参考
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
// Assign new variable names
var {p: foo, q: bar} = o;
console.log(foo); // 42
console.log(bar); // true
Run Code Online (Sandbox Code Playgroud)
var foo = ["one", "two", "three"];
// without destructuring
var one = foo[0];
var two = foo[1];
var three = foo[2];
// with destructuring
var [one, two, three] = foo;
Run Code Online (Sandbox Code Playgroud)
Cli*_*all 11
var { Navigation } = require('react-router');
Run Code Online (Sandbox Code Playgroud)
...使用解构来实现与...相同的事情
var Navigation = require('react-router').Navigation;
Run Code Online (Sandbox Code Playgroud)
......但更具可读性.
解构对象是 ES6 中的一个新功能。
众所周知,这里发生了一个赋值操作,这意味着右侧的值被分配给左侧的变量。
var { Navigation } = require('react-router');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,require('react-router')
方法返回一个带有键值对的对象,例如
{ Navigation: function a(){},
Example1: function b(){},
Example2: function c(){}
}
.
如果我们想在返回的对象中使用一个键,比如Navigation
变量,我们可以使用对象析构。
这只有在我们手头有钥匙的情况下才有可能。
所以,在赋值语句之后,局部变量Navigation
将包含function a(){}
另一个例子看起来像这样。
var { p, q } = { p: 1, q:2, r:3, s:4 };
console.log(p) //1;
console.log(q) //2;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8501 次 |
最近记录: |