2017-02-10 164 views
0

我試圖在Javascript中創建一個堆棧類,但是我不斷收到上述錯誤的變體。我知道它是構造函數,但我無法找到問題所在。這裏是我的類:javascript typeError:無法讀取undefined屬性

"use strict" 
 

 
class Stack { 
 
    constuctor() { 
 
     this.items = []; 
 
    } 
 

 
    emptyArray() { 
 
     if (this.items === 0) { 
 
      this.error = "The stack is empty"; 
 
     } 
 
     return this.error; 
 
    } 
 

 
    isEmpty() { 
 
     return this.items === 0; 
 
    } 
 

 
    push(x) { 
 
     return this.items.push(x); 
 
    } 
 

 
    pop() { 
 
     if (this.items >= 1) { 
 
      return this.items.pop(); 
 
     } 
 
     else { 
 
      throw new emptyArray(); 
 
     } 
 
    } 
 

 
    size() { 
 
     return this.items.length; 
 
    } 
 

 
    peak() { 
 
     let el1 = this.items.pop(); 
 
     let el2 = this.items.pop(); 
 
     this.items.push(el2); 
 
     this.items.push(el1); 
 
     return el2; 
 
    } 
 
} 
 

 
new Stack().size();

+0

例如,如果我嘗試stack.push(X),我會得到一個「無法讀取屬性推「或者如果我使用stack.size(),我會得到」無法讀取屬性長度「等。 – Allen

+0

你確定你的變量是被定義的嗎?嘗試使用alert()來查看它是否被定義。 – pudility

+0

若要查看數組是否爲空,請不要使用此'this.items === 0'。使用這個'this.items.length === 0'!比較長度而不是數組本身! –

回答

3

constructor拼寫錯誤:

constuctor() { 
    this.items = []; 
} 
+0

好吧,那是一個愚蠢的錯誤 – Allen

+0

它發生在每個人身上:) –

相關問題