而在寻找的Mozilla的(Firefox)的一些JavaScript代码附加SDK,我看到了一种我从来没有见过的变量声明:
var { foo, bar } = someFunction("whatever"); // just an example
看到周围的变量名的花括号? 事实证明,这是一次全部分配对象,以多个变量的属性值的方法。 这似乎类似于解构赋值或PHP的list
,除了与对象的属性,而不是阵列。
其实,我通过一些摆弄发现了这一点,因为似乎它的文档。 看看下面的代码:
function gimmeAnObject() {
return {
foo: "hey",
bar: "sup"
};
}
console.log(gimmeAnObject()); // Object { foo="hey", bar="sup" }
var { foo, bar } = gimmeAnObject();
console.log(foo); // hey
console.log(bar); // sup
我还发现,这个只适用于Firefox。 Chrome浏览器将代替抛出一个错误:“ 未捕获的SyntaxError:意外的标记{”。 这解释了为什么我还没有看到它之前,我开始寻找在Firefox插件的代码。
有其他人看到这种前变量声明? 为什么我无法找到任何文件? 因为它只是在Firefox的作品,我认为这可能是一个Mozilla的事情,但我甚至不能找到关于它的任何MDN。 再说,也许我只是不知道该怎么寻找。