2016-04-23 6 views
-1

ループの繰り返しが完了するたびに別の名前で新しい変数を作成しようとしていますが、動作しないようです。ここに私が使用しているコードがありますJavascript:インデックス内で異なる名前の新しい変数をループ内に作成する方法

function Brick() { 
    var b = $(this); 
    b.content = '<div class="brick"></div>'; 
    b.width = 100/o.x; // 'o' is an object I created earlier 
    b.height = 100/o.y; 
} 

for (var i = 0; i < numberOfBricks; i++) { 
    var brick[i] = new Brick(); 
} 

どうすればいいですか?

+0

のようなもの[i]は、あなたがすべて失っています最後のBrick()インスタンスです。 –

+2

'var b = $(this);'この行は私を混乱させます。なぜネイティブオブジェクトをJqueryに変換していますか?あるいは '$'という名前の関数がありますか? –

+2

また、 'var brick [i] = new Brick();'これは有効な構文ではありません。 –

答えて

0

ブラケット表記で、VaRのレンガを使用してこの

function Brick() { 
    var b = $(this); 
    b.content = '<div class="brick"></div>'; 
    b.width = 100/o.x; // 'o' is an object I created earlier 
    b.height = 100/o.y; 
} 

var bricks={} 
for (var i = 0; i < numberOfBricks; i++) { 
    bricks['brick_'+i] = new Brick(); 
} 
+0

ジュゼッペさん、ありがとう、これで解決しました – Ben

0

は、配列にインスタンスを押して、ループの外に配列を宣言します。

function Brick() {} 

var brick = []; 
for (var i = 0; i < numberOfBricks; i++) { 
    brick[i] = new Brick(); 
} 
0

私はあなたがループの外レンガの変数を宣言するべきだと思います。あなたが唯一のその変数を参照する必要がありますループ内

var brick = new Array(); 

または

var brick = []; 

。また、var b = $(this)あなたは単に、必要

brick[i] = new Brick(); 

をできない:

function Brick() { 
    this.content = '...'; 
    this.width = 100/o.x; 
    this.height = 100/o.y; 
} 
関連する問題