2011-11-20 70 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