gpt4 book ai didi

javascript - 请问这两个项目在 JavaScript 中有什么区别?

转载 作者:行者123 更新时间:2023-11-30 12:04:10 25 4
gpt4 key购买 nike

请问这两个项目有什么区别?我想对我正在写的这段代码应用一个解决方案,这是 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 的原因是数组是对象,因此您可以向它们添加属性。事实上,普通数组就像您在第二个示例中使用的数组一样 aren't really arrays at all (链接到我贫血的小博客上的帖子),它们只是由 Array.prototype 支持的对象,具有一些特殊功能。

关于javascript - 请问这两个项目在 JavaScript 中有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com