Javascript 在新日期调用getTime时,Undefined不是函数
当我试图运行这个程序时,我得到“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;
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-这个看起来不像是那个的复制品。这种情况下的解决方案是添加usenewdate()
,而不仅仅是Date()
。这里的OP已经使用了new
。谢谢,有时候你就是看不到显而易见的东西。:)