2011-11-20 56 views
1

我想每次单击页面上的按钮时创建对象的新实例。问题是参考变量,如果你看看这个例子?动态引用变量(对象)?

<input value="Create person" onclick="CreateObject()" /> 

...... 

function CreateObject(){ 
var person = new Person("Carl", 18); 
} 

每次调用函数时,都会使用相同的引用变量创建对象的实例。每次调用函数时(例如,“person1”,“person2”,“person3”),我都希望参考变量不同。我该怎么办?

+3

创建一个数组,而没有给在他们和他们亵渎的方式(tm)? – delnan

+0

尽管变量相同,但每次都是一个新变量,因为每次的范围都不相同。在CreateObject返回后,人物变量(和对象)被丢弃。 –

回答

4

要使用动态变量名(不推荐)

function CreateObject() 
{ 
    window['person' + CreateObject.counter++] = new Person("Carl", 18); 
} 

CreateObject.counter = 0; 

更好(如@delnan建议)使用数组:

var people = []; 

function CreateObject() 
{ 
    var person = new Person("Carl", 18); 
    people.push(person); 
} 
+0

工程就像一个魅力,谢谢! – holyredbeard