Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
刚才看到一个工厂风格的对象在JavaScript中创建(没有文字)。我还需要知道什么?_Javascript_Syntax - Fatal编程技术网

刚才看到一个工厂风格的对象在JavaScript中创建(没有文字)。我还需要知道什么?

刚才看到一个工厂风格的对象在JavaScript中创建(没有文字)。我还需要知道什么?,javascript,syntax,Javascript,Syntax,我刚刚在代码中看到了这一点 var thisYear = (new Date()).getFullYear(); 这很酷,因为我总是在两行中做类似的事情,即创建新的对象实例并将其分配给变量,然后对其调用方法 这种新方法适用于任何地方吗?有什么问题吗?这不是什么新鲜事,但是安全的。实际上,您也不需要括号: new Date().getFullYear(); new Date()和(new Date())都是对日期对象求值的表达式,您可以对其自由调用方法 您甚至可以直接对数字调用方法: (10

我刚刚在代码中看到了这一点

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

这很酷,因为我总是在两行中做类似的事情,即创建新的对象实例并将其分配给变量,然后对其调用方法


这种新方法适用于任何地方吗?有什么问题吗?

这不是什么新鲜事,但是安全的。实际上,您也不需要括号:

new Date().getFullYear();
new Date()
(new Date())
都是对日期对象求值的表达式,您可以对其自由调用方法

您甚至可以直接对数字调用方法:

(1000).toExponential()

在这种情况下,您确实需要参数。

实例化对象并调用其方法而无需中间赋值的模式是可以的,没有问题

但是,对于日期,必须注意不要执行以下操作:

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!
var hours=newdate().getHours();
var minutes=新日期().getMinutes()//说15:30:59
var seconds=新日期().getSeconds()//有些滴答声过去了,现在是15:31:00
变量时间=(小时<10?“0”+小时:小时)+“:”+(分钟<10?“0”+分钟:分钟)+“:”+(秒<10?“0”+秒:秒);
警报(时间)//哎呀,现在是15:30:00!

该示例是人为设计的,但最好记住,如果您使用的是上下文感知对象,有时您希望单个实例执行多个操作。更不用说它更便宜了:)

如果你读过编程书,这不是很基本吗?@Patrick也许吧,但它的使用并不广泛(至少在我的旅行中)。哦,哇,那太酷了。我想我需要括号。在我的脑海里一定是一些剩余的PHP。