2013-01-11 22 views

回答

2

構造的主體每次調用它的時候執行。就像任何其他功能一樣。由於構造函數的主體調用Date.now,因此每次都會調用它。

如果它不是每次都執行,那麼每個實例都會共享所有相同的屬性......這將會擊敗它的重點!

但是,您可能一直在考慮thing.prototype。如果設置timer作爲一個屬性,它會爲每個實例評估,並且每個實例都將共享相同的屬性(因此相同的值):

thing.prototype.timer = Date.now(); // Not what you want! 

看一看this example。注意前兩次是不同的,後兩次是相同的。

0

specification

now函數返回一個數字值,是時間值指定調用now發生的UTC日期和時間。

所以,

Date.now()返回,我每次做的類的實例的時候,我做一個

是。

1

它會返回你做一個實例的時候,

function thing() { 
    this.timer = Date.now(); 
    console.log(this.timer) 
} 

//兩個的這種將記錄不同的時間。

new thing(); 
new thing() 
1

this.timer將始終返回在其thing被實例化時的值。當調用new thing()時,它將被設置一次,並且除非明確重置,否則將始終返回該值。

小提琴: http://jsfiddle.net/sajjansarkar/QrUWR/1/

function thing() 
{ 
    this.timer = Date.now(); 
} 

var o1 = new thing(); 
alert(o1.timer); 
alert(o1.timer); 

var o2 = new thing(); 
alert(o2.timer); 
alert(o1.timer); 
+1

@LayTaylor感謝您的編輯:) –

相關問題