请问什么';JavaScript中这两个项目的区别是什么?

请问什么';JavaScript中这两个项目的区别是什么?,javascript,object,Javascript,Object,我很困惑,这两个项目有什么区别? 我想对我正在编写的代码应用一个解决方案这是关于plunkr的链接 谢谢你的帮助。我对编码完全是个初学者 var myVariable = {}; Object.defineProperties(myVariable, { 'newProperty1': { value: 'valueOfPropertyOne' } }); 以及: 不同之处在于,在第一种情况下,由于使用{}(对象初始值设定项)创建了非数组对象,因此最终得到了

我很困惑,这两个项目有什么区别? 我想对我正在编写的代码应用一个解决方案这是关于plunkr的链接

谢谢你的帮助。我对编码完全是个初学者

var myVariable = {};
Object.defineProperties(myVariable, {
    'newProperty1': {
         value: 'valueOfPropertyOne'
     }
});
以及:


不同之处在于,在第一种情况下,由于使用
{}
(对象初始值设定项)创建了非数组对象,因此最终得到了一个非数组对象;在第二种情况下,由于使用
[]
(数组初始值设定项)创建了一个数组(也是一个对象)。因此,在第二种情况下,您将拥有magic
length
属性,
Array.prototype
等提供的各种内容

通常,只有在需要特定于阵列的功能时,才会使用阵列


可以在数组上定义
newProperty1
的原因是数组是对象,因此可以向它们添加属性。事实上,普通数组就像你在第二个示例中使用的数组(链接到我贫血的小博客上的一篇文章),它们只是
数组支持的对象。prototype
具有一些特殊功能。

谢谢老板。。。你是最好的。
var myVariable = [];
Object.defineProperties(myVariable, {
    'newProperty1': {
        value: 'valueOfPropertyOne'
    }
});