javascript - 对象数组,在 JavaScript 中具有单独的属性

标签 javascript arrays object

我正在尝试用 javascript 构建一个对象数组。 不知怎的,我在任何地方都没有找到我正在寻找的答案。是的,我搜索了问题。

因此,传统对象显然具有以下属性:

项目是对象

item = new Object();

具有属性和方法

item.name = "sword"; // "sword" being the string name of the object
item.buy = buy; //buy being a function to add said item

这太棒了,我明白了。

我也得到数组。

我的问题是,如果我想要 20 个这样的对象,我怎样才能将它们放在一个数组中而不是制作许多对象

例如,我知道我可以做到这一点。

item1 = new Object();
item1.name = "sword";
item1.buy = buy;

item2 = new Object();
item2.name = "shield";
item2.buy = buy;

但是,我想做这样的事情

item = new Array();
item[0].name = "sword";
item[0].buy = buy;

item[1].name = "shield";
item[1].buy = buy;

也许这很明显,但我不明白这里出了什么问题。

当我尝试打电话时

item[0].buy(); 

我遇到错误“Uncaught TypeError: Object 0 has no method 'buy'”并且 item[0].name 未定义。

我做错了什么?我该如何解决这个问题?

最佳答案

我的猜测是你想要的是一个对象数组:

var item = new Array();
item[0] = {};
item[0].name = "sword";
item[0].buy = function() { return this.name };
item[0].buy();
// -> "sword"

关于javascript - 对象数组,在 JavaScript 中具有单独的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19625339/

相关文章:

javascript - Angular 路由中的哈希符号

javascript - 如何在 Angular 6 中动态创建的按钮上绑定(bind)单击事件?

python - python中向量数组的范数

javascript - RxJs:http.get 正在获取一个数组,但我希望订阅者获取单个元素

cocoa - 来自枚举值的 NSString

javascript - VS Code 扩展代码找不到 JSON 路径

javascript - 使用父类且无 ID 的 javascript 检测按钮点击

python - 生成四元对

arrays - 在 PowerShell 中从对象中选择某些属性

java - 如何获取字符串数组并将它们进一步分成对象?