我试图在游戏中调用一个对象的方法,并且我一直收到这个错误:“未捕获的TypeError:对象#没有方法'calculateDps'”,这是相关的代码:
function Item(pBase, price){
this.pBase = pBase;
this.price = price;
pMultiplier = 1;
number = 0;
calculateDps = function(){
return this.pBase * pMultiplier * number;
};
};
var cursor = new Item(.1,15);
var calcDps = function(){
return cursor.calculateDps();
};
calcDps();
答案 0 :(得分:0)
calculateDps = function(){
return this.pBase * pMultiplier * number;
};
您正在创建一个名为calculateDps
的全局变量,因为您没有使用var
关键字。要将其附加到当前生成的对象,您需要执行
this.calculateDps = function(){
...
但实现这一目标的理想方法是将函数添加到原型中,例如
function Item(pBase, price){
this.pBase = pBase;
this.price = price;
this.pMultiplier = 1;
this.number = 0;
};
Item.prototype.calculateDps = function() {
return this.pBase * this.pMultiplier * this.number;
};
现在,calculateDps
将可用于使用Item
构造函数创建的所有对象。