请解释一下" Array.push({objectRef})"实际上是用JS做的吗?

时间:2017-10-31 11:56:23

标签: javascript

我意识到这对大多数人来说可能是一个愚蠢的,但由于我甚至不知道这是什么,我还是无法在网上找到更多信息..

分享我的代码过度简化;在没有真正考虑我在做什么的情况下,我最终得到了类似下面的内容:

var myArray = [];
var firstObject = {...};
var secondObject = {...};

myArray.push({firstObject, secondObject});

在Chrome中,当我检查数组内容时,我有一个完全符合我预期的对象数组。如果我JSON.stringify(myArray),我会得到以下结论:

[{"firstObject":{"ping":"pong"},"secondObject":{"ping":"pong"}}]

然而,当其他人在IE中尝试此操作时,它抱怨语法并且.push()调用失败。

之后我意识到我实际上想要做的事情是:

myArray.push({
  firstObject: firstObject,
  secondObject: secondObject
});

幸运的是,使用这个数组的代码并不需要改变,但我仍然对此感到困惑。有人能指出我的方向吗?这是来自较新的ES6语法吗?

1 个答案:

答案 0 :(得分:7)

myArray.push({firstObject, secondObject});

是ES6语法,实际上是desugars:

myArray.push({
  firstObject: firstObject,
  secondObject: secondObject
});

所以IE抱怨,因为它不支持这种新语法。

您可以阅读相关内容(以及更多内容)heredocumentation