簡體   English   中英

剛剛看到了用JavaScript創建的工廠樣式對象(沒有文字)。 我還需要知道什么?

[英]Just seen a factory style object creating in JavaScript (without literals). What else do I need to know?

我剛剛在代碼中看到了

var thisYear = (new Date()).getFullYear();

在JSbin上實時查看

這很酷,因為我總是在兩行中完成類似的操作,即創建新的對象實例並將其分配給變量,然后在其上調用方法。

這種新方法在任何地方都可以使用嗎? 有問題嗎?

這不是什么新鮮事,但是是安全的。 您實際上也不需要括號:

new Date().getFullYear();

new Date()(new Date())都是計算為Date對象的表達式,您可以在上面自由調用方法。

您甚至可以直接在數字上調用方法:

(1000).toExponential()

在這種情況下,您確實需要括號。

在沒有中間分配的情況下實例化對象並調用其方法的模式是A-OK,在那里沒有問題。

但是,對於日期,必須注意不要執行以下操作:

var hours = new Date().getHours();
var minutes = new Date().getMinutes(); //Say at, 15:30:59
var seconds= new Date().getSeconds();  //Some ticks passed, now it's 15:31:00

var time = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" +  (seconds < 10 ? "0" + seconds : seconds);
alert(time); //Oops, it's 15:30:00!

該示例是人為設計的,但是如果您使用的是上下文感知對象,則請牢記這一點,有時您希望單個實例執行多項操作。 更不用說它更便宜的事實了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM