在JavaScript类中使用数组
我定义了一个JavaScript类,如下所示:在JavaScript类中使用数组,javascript,arrays,Javascript,Arrays,我定义了一个JavaScript类,如下所示: function Item() { this.init(); } Item.prototype = { id: null, name: '', description: '', init: function () { this.id = "1"; } }; 我想添加一个名为“logs”的属性。我希望此属性是其他类实体的数组。如何将这种数组定义为Item类的属性?如何向该数组添加实体?最初,我认
function Item() {
this.init();
}
Item.prototype = {
id: null,
name: '',
description: '',
init: function () {
this.id = "1";
}
};
我想添加一个名为“logs”的属性。我希望此属性是其他类实体的数组。如何将这种数组定义为Item类的属性?如何向该数组添加实体?最初,我认为可以在init函数中添加“this.logs={};”。然后在其他地方的代码中,我尝试了以下方法:
Item i = new Item();
i.logs.push(NewLog());
但是,push函数遇到一个错误,该错误表示:“无法调用未定义的方法‘push’”
我做错了什么?
日志尚未初始化。将其添加到构造函数中(而不是原型中,因为该数组将由项的所有实例共享):
还有,JavaScript!=爪哇
var i = new Item() // instead of Item i = new Item();
您可以尝试:
Item.prototype = {
id: null,
name: '',
description: '',
init: function () {
this.id = "1";
},
push: Array.prototype.push
};
那么如何将项目添加到数组中?创建“i”后,如何将项目“推”到数组中?@JQueryMobile您说过要将元素添加到日志
数组中(这是“类实例”的属性)。使用i.logs.push(NewLog())代码>。
Item.prototype = {
id: null,
name: '',
description: '',
init: function () {
this.id = "1";
},
push: Array.prototype.push
};