2011-02-18 8 views
0

私はこのような何かをしようとしています:javascript:変数の内部で変数インスタンスを呼び出す方法

私は、例えば、アラートの警告を受けることができる方法
var Test = 
{ 
    A:function() 
    { 
    array = new Array(); 
    array[0] = new Array("1","2","3"); 
    array[1] = new Array("Name","Age","blabla"); 
    }, 

    B: function() 
    { 
     var c = new this.A(); 
     alert(c); //output:: object Object 
     alert(c.array[1]); // output:: undefined 
     alert(c.array[1][0]); // output undefined 
    }  
} 

(c.array [1] [0])出力の "名前" と。 通常、他の言語では、継承されたクラスのメソッドを使用することができますが、javascriptでは可能です。私は(希望)それは可能だと思いますが、どうですか?

鎮痛剤

答えて

4

、変更する必要があると思います:

A:function() 
{ 
this.array = new Array(); 
this.array[0] = new Array("1","2","3"); 
this.array[1] = new Array("Name","Age","blabla"); 
}, 

あなたはそれを変更しない場合は、あなたがこれを行うには、より良いだろう:

A:function() 
{ 
    this.array = [ [ "1", "2", "3" ], [ "Name", "Age", "blabla" ] ]; 
}, 

"アレイ"コンストラクタはかなり悪いAPI設計であり、避けるべきです。

+0

大変ありがとうございます! – Painkiller

+0

素晴らしい!これらの配列の初期化文には注意が必要です。これを行う最良の方法ですが、誤って値リストの最後にカンマを置いてしまった場合、IEが動揺します。 – Pointy