javascript - 在新日期调用 getTime 时,未定义不是函数

标签 javascript

我在尝试运行时得到“undefined is not a function”。我错过了什么?

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 因为该属性存在于原型(prototype)或实际实例化中对象,而不是构造函数本身。然后它尝试执行 new undefined 这显然不起作用并给你你看到的错误。

当你这样做时:

new Date().getTime();

它本质上是这样做的:

(new Date()).getTime();

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

关于javascript - 在新日期调用 getTime 时,未定义不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481530/

相关文章:

javascript - 处理多个 Gmail 帐户

javascript - 通过 HTML、CSS 和 JS 滑动底部面板

php - 异步PHP

javascript - 离开悬停后如何将 p 标签保持在先前的位置?

javascript - JS AWS SDK 是否真的支持 DynamoDb 扫描的 ConcientRead 参数?

javascript - 预输入回调不起作用

javascript - Angular : pass data when doing a $location. 路径()

javascript - 延迟在 jquery 动画队列中没有正确重新初始化

javascript - 循环隐藏和显示表格行

javascript - 我如何使用 jquery 将隐藏元素从 0 不透明度滑动到 1