これを書くと:
function thing() {
this.timer = Date.now();
}
クラスのインスタンスを作成するたびにインスタンスを作成した時間を返しますDate.now()
か、それともスクリプトがロードされた時間を返し続けますか?
ノブの質問で申し訳ありません。
これを書くと:
function thing() {
this.timer = Date.now();
}
クラスのインスタンスを作成するたびにインスタンスを作成した時間を返しますDate.now()
か、それともスクリプトがロードされた時間を返し続けますか?
ノブの質問で申し訳ありません。
コンストラクターの本体は、呼び出すたびに実行されます。他の機能と同じように。コンストラクターの本体が を呼び出すためDate.now
、毎回呼び出されます。
毎回実行されなかった場合、すべてのインスタンスがすべて同じプロパティを共有します...これは、そのポイントを無効にするでしょう!
しかし、あなたは考えたことがあるかもしれませんthing.prototype
。timer
そのプロパティとして設定すると、インスタンス化ごとに評価されず、すべてのインスタンスが同じプロパティ (したがって同じ値) を共有します。
thing.prototype.timer = Date.now(); // Not what you want!
この例を見てください。最初の 2 回が異なっていて、次の 2 回が同じであることに注目してください。
はい、インスタンスを作成した時刻が返されます。
function thing() {
this.timer = Date.now();
console.log(this.timer)
}
//これは両方とも異なる時間を記録します。
new thing();
new thing()
this.timer
thing
インスタンス化された時刻の値を常に返します。が呼び出されたときにそのインスタンスに対して 1 回設定され、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);
仕様から:
この
now
関数は、への呼び出しが発生したUTC日時を指定する時刻値であるNumber値を返しますnow
。
それで、
Date.now()
クラスを作成するたびに、クラスのインスタンスを作成した時間を返します
はい。