javascript对象方法未定义

javascript对象方法未定义,javascript,methods,Javascript,Methods,所以,我是JS新手,我对对象方法有一些问题。 building对象原型中的方法buy()应该执行我为其定义的操作,但它表示“未定义” 注意:是的,我确实创建了一个实例 我打电话给狱警时试过“building.blabla”和“this.blabla”,但什么也没发生。怎么了 编辑:我的新代码: var bitcoins = 0; var bitcoinsps = 0; var build = new Array(); function building(price, bps, name) {

所以,我是JS新手,我对对象方法有一些问题。 building对象原型中的方法buy()应该执行我为其定义的操作,但它表示“未定义”

注意:是的,我确实创建了一个实例

我打电话给狱警时试过“building.blabla”和“this.blabla”,但什么也没发生。怎么了

编辑:我的新代码:

var bitcoins = 0;
var bitcoinsps = 0;
var build = new Array();

function building(price, bps, name) {
    this.price = price;
    this.bps = bps;
    this.name = name;
    this.amount = 0;

}
building.prototype.buy = function() {

    if (bitcoins >= building.price) {
        this.amount++;
        bitcoins -= this.price;
        this.price *= 1.15;
        bitcoinsps += this.bps;
    }
};
    build[1] = new building(70, 1, "Junky laptop");
    build[2] = new building(300, 4, "Average PC");
    build[3] = new building(1000, 15, "Gaming PC");
    build[4] = new building(5000, 70, "Dedicated Hardware");
    build[5] = new building(24000, 300, "Small cluster computer");
    build[6] = new building(100000, 1000, "Medium cluster computer");
    build[7] = new building(500000, 4500, "Large cluster computer");
buy()必须使用this.blabla。因此,更改it实施方式如下:

building.prototype.buy = function buy() {
    if (bitcoins >= this.price) {
        this.amount++;
        bitcoins -= this.price;
        this.price *= 1.15;
        bitcoinsps += this.bps;
    }
};
此外,还必须使用“新建”创建一个建筑实例。例如:

var b = new building(1, 2, 'fred');
b.buy();
buy()必须使用this.blabla。因此,更改it实施方式如下:

building.prototype.buy = function buy() {
    if (bitcoins >= this.price) {
        this.amount++;
        bitcoins -= this.price;
        this.price *= 1.15;
        bitcoinsps += this.bps;
    }
};
此外,还必须使用“新建”创建一个建筑实例。例如:

var b = new building(1, 2, 'fred');
b.buy();
buy()必须使用this.blabla。因此,更改it实施方式如下:

building.prototype.buy = function buy() {
    if (bitcoins >= this.price) {
        this.amount++;
        bitcoins -= this.price;
        this.price *= 1.15;
        bitcoinsps += this.bps;
    }
};
此外,还必须使用“新建”创建一个建筑实例。例如:

var b = new building(1, 2, 'fred');
b.buy();
buy()必须使用this.blabla。因此,更改it实施方式如下:

building.prototype.buy = function buy() {
    if (bitcoins >= this.price) {
        this.amount++;
        bitcoins -= this.price;
        this.price *= 1.15;
        bitcoinsps += this.bps;
    }
};
此外,还必须使用“新建”创建一个建筑实例。例如:

var b = new building(1, 2, 'fred');
b.buy();

您不需要重新声明方法名称;以下代码:

building.prototype.buy = function(){
    // function body
}
将创建
building
对象的实例函数
buy
。要使用它,您需要创建
building
的实例:

var b = new building(/*params*/);
b.buy();

同样,正如cybersam指出的,使用
building
类的任何成员变量都需要使用
this
关键字。

您不需要重新声明方法名称;以下代码:

building.prototype.buy = function(){
    // function body
}
将创建
building
对象的实例函数
buy
。要使用它,您需要创建
building
的实例:

var b = new building(/*params*/);
b.buy();

同样,正如cybersam指出的,使用
building
类的任何成员变量都需要使用
this
关键字。

您不需要重新声明方法名称;以下代码:

building.prototype.buy = function(){
    // function body
}
将创建
building
对象的实例函数
buy
。要使用它,您需要创建
building
的实例:

var b = new building(/*params*/);
b.buy();

同样,正如cybersam指出的,使用
building
类的任何成员变量都需要使用
this
关键字。

您不需要重新声明方法名称;以下代码:

building.prototype.buy = function(){
    // function body
}
将创建
building
对象的实例函数
buy
。要使用它,您需要创建
building
的实例:

var b = new building(/*params*/);
b.buy();


同样,正如cybersam指出的,使用
building
类的任何成员变量都需要使用
this
关键字。

如果你不了解javascript是如何工作的,请阅读那本书:然后再试一次。如果你对一门语言的核心概念没有基本的了解,你就不能使用它。如果你不了解javascript的工作原理,请阅读那本书:然后再试一次。如果你对一门语言的核心概念没有基本的了解,你就不能使用它。如果你不了解javascript的工作原理,请阅读那本书:然后再试一次。如果你对一门语言的核心概念没有基本的了解,你就不能使用它。如果你不了解javascript的工作原理,请阅读那本书:然后再试一次。如果你对一门语言的核心概念没有基本的了解,你就不能使用它。我已经创建了这个实例。我只展示了代码的一部分。我已经创建了实例。我只展示了代码的一部分。我已经创建了实例。我只展示了代码的一部分。我已经创建了实例。我只展示了代码的一部分。我创建了一个实例,但不在这里的代码中。好的,那么试着运行我的解决方案。不起作用,你有其他建议吗?很有趣,它对我起作用了。你是说根本没有改变任何值吗?一点也没有,我用整个代码编辑了我的帖子。我创建了一个实例,只是不在这里的代码中。好的,那么试着运行我的解决方案。不起作用,你有其他建议吗?这很有趣,它对我有效。你是说根本没有改变任何值吗?一点也没有,我用整个代码编辑了我的帖子。我创建了一个实例,只是不在这里的代码中。好的,那么试着运行我的解决方案。不起作用,你有其他建议吗?这很有趣,它对我有效。你是说根本没有改变任何值吗?一点也没有,我用整个代码编辑了我的帖子。我创建了一个实例,只是不在这里的代码中。好的,那么试着运行我的解决方案。不起作用,你有其他建议吗?这很有趣,它对我有效。你是说根本没有改变任何值吗?一点也没有,我用全部代码编辑了我的帖子。