2016-11-21 9 views
-4

コンストラクタ内に連想配列を作成したいとします。しかし、以下のコードはエラーをスローします。キャッチされない例外TypeError:あなたが名前を初期化して、そのオブジェクトの使用プロパティの後になります未定義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には連想配列がないので、それを作成することはできません。 –

答えて

0

のプロパティ「NUM」を設定することはできません。この場合、nameは定義されておらず、未定義のプロパティを設定しようとします。

class Validator 
 
{ 
 
    
 
    constructor(){ 
 

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

 

 
     
 

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

+1

このような質問の場合、問題の_explanation_は「コピー準備ができている」ソリューションよりもはるかに重要です。 – Xufox

+0

名前が定義されていないため、未定義のプロパティを設定しようとしています。 –

+1

これは連想配列ではありません。それはオブジェクトです。 –

2

Javascriptがない連想配列を有していないが、代替として使用することができるオブジェクトリテラル。 ここでは、オブジェクトを使用する前にそのオブジェクトを定義する必要があります。

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