2016-04-23 74 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

利用VAR砖[I],你失去所有但最后一个Brick()实例。 –

+2

'var b = $(this);'这条线让我困惑。你为什么要将本地对象转换成Jquery?或者你有任何名称为'$'的函数? –

+2

另外'var砖[i] =新砖();'这不是一个有效的语法。 –

回答

0

带支架的符号,像这样

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

感谢Giuseppe,这解决了它 – Ben

0

声明数组的循环之外,然后推入实例数组:

function Brick() {} 

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

我想你应该申报外循环砖变量。

var brick = new Array(); 

var brick = []; 

里面的循环,你应该只引用该变量。

brick[i] = new Brick(); 

而且,var b = $(this)是没有必要的,你可以简单地说:

function Brick() { 
    this.content = '...'; 
    this.width = 100/o.x; 
    this.height = 100/o.y; 
} 
相关问题