繁体   English   中英

使用object.prototype的Javascript添加方法不起作用

[英]Javascript add method using object.prototype doesnt work

整体来说,这是JS的新功能,我正在尝试向JS对象添加方法。 我有一个对象;

function Population() {
  this.size = 30;
  this.items = [];
  this.generateRandom;
};

我想稍后定义如下的generateRandom方法

Population.prototype.generateRandom = function() {
 ....code here...
}

但是我得到了错误

“ generateRandom”不是一个函数

如果我创建一个新的种群并尝试运行它,则会出现此错误;

//run the program
(function(){
    //let p = new Pool();
  let p = new Population();
  p.generateRandom();
  //p.generatePopulation();
    console.log(p);
}());

您的代码应按原样工作-尝试运行此代码(随意在函数中放入一些代码):

 function Population() { this.size = 30; this.items = []; }; Population.prototype.generateRandom = function() { for(let i = 0; i < this.size; i++) this.items.push(Math.floor(Math.random() * 100)); return this.items; }; let p = new Population(); console.log(p.generateRandom()); 

也许是您的this.generateRandom; 在第3行,这就是造成问题的原因。 没必要

另外,由于要定义对象,因此可能要使用class关键字:

class Population {
  constructor() {
    this.size = 30;
    this.items = [];
  }
  generateRandom() {
    // ...your function here
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM