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

JavaScript Webpack

GO

2020-03-23

我以前没有看过这种语法,并且想知道它的全部含义。

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

左侧的括号引发语法错误:

意外的标记 {

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

第2682篇《分配左侧的Javascript对象括号表示法({Navigation} =)》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
斯丁前端 2020.03.23

这是破坏性的任务这是ECMAScript 2015的新功能。

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

等效于:

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

这称为解构分配,它是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;

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android