我定义了一个 JavaScript 类,如下所示:
function Item() {
this.init();
}
Item.prototype = {
id: null,
name: '',
description: '',
init: function () {
this.id = "1";
}
};
我想添加一个名为“logs”的属性。我希望这个属性是其他类实体的数组。如何将这种数组定义为 Item 类的属性?如何将实体添加到该数组?本来,我想我可以添加“this.logs = {};”在我的初始化函数中。然后在其他地方的代码中,我尝试了以下操作:
Item i = new Item();
i.logs.push(NewLog());
但是,push 函数会出现错误:“无法调用未定义的方法‘push’”
我做错了什么?
最佳答案
logs
尚未初始化。将其添加到构造函数中(而不是添加到原型(prototype)中,因为该数组将被 Item
的所有实例共享):
function Item() {
this.init();
this.logs = []; // Not {}: [] is equivalent to new Array(), and
} // {} is equivalent to new Object() (not an array)
另外,JavaScript != Java。
var i = new Item() // instead of Item i = new Item();
关于javascript - 在 JavaScript 类中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413584/