Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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 在新日期调用getTime时,Undefined不是函数_Javascript - Fatal编程技术网

Javascript 在新日期调用getTime时,Undefined不是函数

Javascript 在新日期调用getTime时,Undefined不是函数,javascript,Javascript,当我试图运行这个程序时,我得到“undefined不是一个函数”。我错过了什么 function bench(func) { var start = new Date.getTime(); for(var i = 0; i < 10000; i++) { func(); } console.log(func, new Date.getTime() - start); } function forLoop() { var counter = 0;

当我试图运行这个程序时,我得到“undefined不是一个函数”。我错过了什么

function bench(func) {
  var start = new Date.getTime();

  for(var i = 0; i < 10000; i++) {
    func();
  }

  console.log(func, new Date.getTime() - start);
}

function forLoop() {

    var counter = 0;
    for(var i = 0; i < 10; i++) {
      counter += 1;
    }

    return counter;

}

bench(forLoop);
功能台(func){
var start=new Date.getTime();
对于(变量i=0;i<10000;i++){
func();
}
log(func,new Date.getTime()-start);
}
函数forLoop(){
var计数器=0;
对于(变量i=0;i<10;i++){
计数器+=1;
}
返回计数器;
}
工作台(forLoop);
您需要使用:

new Date().getTime();
而不是

new Date.getTime();

这里有一些关于我们在做什么的解释。当您这样做时:

new Date.getTime();
new Date().getTime();
它在
Date
构造函数上查找
getTime()
属性,即
undefined
,因为该属性存在于原型或实际实例化对象上,而不是构造函数本身上。然后它尝试执行
新的未定义的
,这显然不起作用,并给出您看到的错误

当您这样做时:

new Date.getTime();
new Date().getTime();
它基本上是这样做的:

(new Date()).getTime();

因为运算符优先级,这就是您想要的。它将创建一个新的
Date()
对象,然后对其调用
.getTime()
方法。

在调用日期对象上的方法之前,需要实例化日期对象

例如:

var date = new Date()
start = date.getTime();

您在哪一行得到该错误?可能是oh my的重复。呵呵,ofc。thanks@isherwood-这个看起来不像是那个的复制品。这种情况下的解决方案是添加use
newdate()
,而不仅仅是
Date()
。这里的OP已经使用了
new
。谢谢,有时候你就是看不到显而易见的东西。:)