有谁知道这种语法在JavaScript中意味着什么?
var { variable } = value;
我在一些代码示例中找到了它,我以前从未见过它。这是JavaScript 6吗?我尝试使用Google variable syntax
和es6
进行Google搜索,但没有提供此语法的示例。
以下是完整的示例:
var { Tab } = require('app-dev-kit/tab');
var tab = Tab({ properties });
最奇怪的部分是,如果我从{ Tab }
丢弃parens然后它不起作用(在这种情况下它表示Tab不是函数):
var Tab = require('app-dev-kit/tab');
var tab = Tab({ properties });
这不起作用:Error: Tab is not a function
。
答案 0 :(得分:4)
这是一个称为destructuring assignment的ES6功能,适用于数组(数组解构)和对象(对象解构)
解构赋值语法是一个JavaScript表达式 可以使用a从数组或对象中提取数据 反映数组和对象文字构造的语法。
假设你有一个功能
function foo() {
return { bar: 1, baz: 2 };
}
并且您希望将该函数返回值的属性分配给局部变量。传统上,你会做类似
的事情var f = foo();
var bar = f.bar;
var baz = f.baz;
console.log(bar); // 1
console.log(baz); // 2
通过解构分配,您可以执行此操作
var {bar, baz} = foo();
console.log(bar); // 1
console.log(baz); // 2