2017-02-10 62 views
0

Javascriptでスタッククラスを作成しようとしていますが、上記のエラーのバリエーションが継続しています。私はそれがコンストラクタであることを知っていますが、問題がどこにあるのか分かりません。javascript typeError:未定義のプロパティを読み取ることができません

"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

それは誰にも起こる:) –

関連する問題