编辑 看着JSHint后,我发现这个" 解构表达"是ES6提供(使用esnext选项)或Mozilla JS扩展(使用MOZ)和本 看完后却我还是不明白为什么它被用来
我在MDN上遇到了以下代码
var ui = require("sdk/ui");
var { ActionButton } = require("sdk/ui/button/action");
Run Code Online (Sandbox Code Playgroud)
第二行的大括号是什么以及为什么使用它们?为什么第一行没有括号?
不确定这是否是特定于Mozilla的JS语法,但我经常发现变量是以这种方式声明的,例如,在附加SDK文档中:
var { Hotkey } = require("sdk/hotkeys");
Run Code Online (Sandbox Code Playgroud)
并在各种chrome Javascript(let声明被用来代替var),
let { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
Run Code Online (Sandbox Code Playgroud)
我发现它很混乱但我无法找到任何关于语法的文档,即使在MDN上也是如此.
在react-native入门示例中,有以下代码:
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;
Run Code Online (Sandbox Code Playgroud)
这是什么意思var {...} = thing;?