分配左侧的Javascript对象括号表示法({导航} =)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

我之前没有看过这个语法,并且想知道它的全部内容。左边的括号引发语法错误:“unexpected token {”

var { Navigation } = require('react-router');

我不确定webpack配置的哪一部分正在转换,或者语法的目的是什么。这是和谐的事情吗?有人能够启发我吗?

提问于
用户回答回答于

它被称为解构赋值,它是ES2015标准的一部分。

解构赋值语法是一个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

数组解构

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;
用户回答回答于

这是解构赋值。这是ECMAScript 2015的新功能。

var {
  AppRegistry,
  StyleSheet,
  Text,
  View,
} = React;

相当于:

var AppRegistry = React.AppRegistry;
var StyleSheet = React.StyleSheet;
var Text = React.Text;
var View = React.View;

扫码关注云+社区