Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript类中使用数组_Javascript_Arrays - Fatal编程技术网

在JavaScript类中使用数组

在JavaScript类中使用数组,javascript,arrays,Javascript,Arrays,我定义了一个JavaScript类,如下所示: function Item() { this.init(); } Item.prototype = { id: null, name: '', description: '', init: function () { this.id = "1"; } }; 我想添加一个名为“logs”的属性。我希望此属性是其他类实体的数组。如何将这种数组定义为Item类的属性?如何向该数组添加实体?最初,我认

我定义了一个JavaScript类,如下所示:

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 
};