簡體   English   中英

如何在類中調用類的方法

[英]How to call method of a class inside of the class

我創建了一個簡單的類myClass並添加了一個方法get_volume 我怎樣才能在課堂上調用get_volume

我總是得到Uncaught ReferenceError: get_volume is not defined

var test = new myClass();

function myClass()
{
    this.volume          = get_volume();
}

myClass.prototype.get_volume = function()
{
    return 100;
};

JSFIDDLEhttps//jsfiddle.net/k01stzaq/

執行順序是造成問題的原因。 你在擴展原型之前調用了new myClass()

(另請注意,您試圖在沒有this情況下引用get_volume 。我認為這是一個印刷錯誤,但也許不是。)

訂購代碼如下:

function myClass(spielname)      //Definition der Klasse "kicker"
{
    this.volume          = this.get_volume();
}

myClass.prototype.get_volume = function()
{
    return 100;
};

var test = new myClass();

構造函數本身在影片原本的懸掛,所以new myClass()調用的工作,但分配給test為原型的前延,所以在構造函數中沒有get_value財產,直到點(protoytpe擴展名)

作為旁注,JavaScript中的常見做法是使用以大寫字母開頭的函數名稱來表示函數旨在用作構造函數。 它不是由語言強制執行的。

首先聲明構造函數和原型,而不是初始化測試對象。

function myClass(spielname) 
{
    this.volume = this.get_volume();
}

myClass.prototype.get_volume = function() {
    return 100;
};


var test = new myClass();
console.log(test.volume); //should print 100

希望這可以幫助!

1.定義函數internaly:

function myClass(spielname)      //Definition der Klasse "kicker"
{
    this.getVolume= function(){
      return this.volume;
    }
    this.volume          = 100;
}

要么

2.為原型添加方法:

 function myClass(spielname)      //Definition der Klasse "kicker"
    {

        this.volume          = 100;
    }
myClass.prototype.getVolume = function(){
  return this.volume;
}

您將get_volume稱為全局函數,但它被定義為myClass的方法。
因此,應該在myClass對象的上下文中調用get_volume方法。
更改您的代碼,如下所示:

function myClass(spielname)
{
    this.volume = this.get_volume();
}

myClass.prototype.get_volume = function()
{
    return 100;
};

var test = new myClass();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM