请问JavaScript中的两个项目有什么区别?



请混淆,这两个项目有什么区别?我想对我正在编写的这段代码应用一个解决方案,这是 plunkr http://plnkr.co/edit/NHS1XYApFEOB2ROUpRSH 的链接

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

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

和:

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

不同之处在于,在第一种情况下,您最终会得到一个非数组对象,因为您使用 {}(对象初始值设定项)创建了它,而在第二种情况下,您最终会得到一个数组(也是一个对象),因为您使用 [](数组初始值设定项)创建了它。所以在第二种情况下,你将拥有神奇的length属性,Array.prototype提供的各种东西,等等。

通常,仅当需要这些特定于阵列的功能时才使用阵列。

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

相关内容

  • 没有找到相关文章

最新更新