![](/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.