当尝试运行它时,我得到“未定义不是一个函数”。我缺少什么?
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();
它寻找getTime()
财产在Date
构造函数,那就是undefined
因为该属性存在于原型或实际实例化的对象上,而不是存在于构造函数本身上。然后它尝试做new undefined
这显然不起作用并给出您所看到的错误。
当你这样做时:
new Date().getTime();
它本质上是这样做的:
(new Date()).getTime();
因为运算符优先级,这就是您想要的。它将创造一个新的Date()
对象,然后调用.getTime()
方法就可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)