![](/img/trans.png)
[英]If/else statements just do not seem to be working in Javascript and i don't know what I am doing wrong
[英]Just seen a factory style object creating in JavaScript (without literals). What else do I need to know?
我剛剛在代碼中看到了
var thisYear = (new Date()).getFullYear();
這很酷,因為我總是在兩行中完成類似的操作,即創建新的對象實例並將其分配給變量,然后在其上調用方法。
這種新方法在任何地方都可以使用嗎? 有問題嗎?
這不是什么新鮮事,但是是安全的。 您實際上也不需要括號:
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.