未捕获的TypeError:对象#<item>没有方法'calculateDps'</item>

时间:2014-02-17 04:10:16

标签: javascript eclipse object

我试图在游戏中调用一个对象的方法,并且我一直收到这个错误:“未捕获的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();

1 个答案:

答案 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构造函数创建的所有对象。