在new Date上调用getTime时,Undefined不是一个函数
Undefined is not a function when calling getTime on new Date
我得到"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);
您需要使用:
new Date().getTime();
不是new Date.getTime();
这里有一些关于正在做什么的解释。当你这样做的时候:
new Date.getTime();
查找Date
构造函数上的getTime()
属性,即undefined
,因为该属性存在于原型或实际实例化的对象上,而不是构造函数本身。然后它尝试执行new undefined
,这显然不起作用,并给出您看到的错误。
当你这样做的时候:
new Date().getTime();
它实际上是这样做的:
(new Date()).getTime();
因为运算符优先级,这就是你想要的。它将创建一个新的Date()
对象,然后在其上调用.getTime()
方法。
您需要在调用Date对象上的方法之前实例化它。
的例子:
var date = new Date()
start = date.getTime();
http://jsfiddle.net/3TJLq/
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么