我正在尝试用 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/