2016-11-21 58 views
-4

我想在構造函數中創建一個關聯數組。但下面的代碼會引發錯誤。 Uncaught TypeError:無法設置未定義屬性'num'如何在EcmaScript中創建關聯數組

class Validate{ 

    constructor(){ 

     this.name['num'] = ['one','two']; 
    } 
    display() { 




     console.log(this.name['num']); 
    } 



} 
+0

您首先必須將'this.name'定義爲_something_。 – Xufox

+0

@Xufox你可以寫代碼 – Dilkush

+0

JavaScript沒有關聯數組,所以你不能創建一個。 – 2016-11-21 16:37:51

回答

0

您將初始化名稱,然後使用您的對象的屬性。在這種情況下,名稱未定義,您嘗試設置未定義的屬性。

class Validator 
 
{ 
 
    
 
    constructor(){ 
 

 
     this.name = {num :['one','two']} ; 
 
     
 
    } 
 
    display() { 
 

 

 
     
 

 
     console.log(this.name['num']); 
 
    } 
 
} 
 
var validator = new Validator(); 
 
validator.display();

+1

對於像這樣的問題,問題的解釋遠比「準備複製」的解決方案重要得多。 – Xufox

+0

因爲名稱未定義,您嘗試設置未定義的屬性。 –

+1

這不是一個關聯數組,不管它是什麼。這是一個對象。 – 2016-11-21 16:43:26

2

的Javascript沒有關聯數組,但對象文本可以作爲一種替代方法。 在這裏,您需要在使用它之前定義對象。

class Validate{ 
    constructor(){ 
     this.name={}//define this.name 
     this.name['num'] = ['one','two']; 
    } 
    display() { 
     console.log(this.name['num']); 
    } 
}