JavaScript示例中的奇怪语法:`var {variable} = value`

时间:2015-11-03 00:12:51

标签: javascript syntax

有谁知道这种语法在JavaScript中意味着什么?

var { variable } = value;

我在一些代码示例中找到了它,我以前从未见过它。这是JavaScript 6吗?我尝试使用Google variable syntaxes6进行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

1 个答案:

答案 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