2014-10-16 41 views
1

所以我有下面的代码段:的Javascript Date.now()函数返回null

//Main game loop 
var main = function() { 

    var now = Date.now(); 
    var delta = now - then; 
    update(delta/1000); 
    render(); 
    then = now; 
    //Request to perform again 
    requestAnimationFrame(main); 
}; 

,并在调试我遇到一个非常奇怪的错误来了。 它返回,然后变量,但返回null为现在变量。

任何帮助将不胜感激!一直在这里挠我的头! 在此先感谢! :)

+2

当你检查的'now'价值?如果你在功能之后做了,那就是问题所在。 'now'是一个本地(初始化)变量。 – Felk 2014-10-16 23:27:44

+0

@Felk提交作为答案,它的工作。你值得你点。简单的解决方案大声笑。 – Drew 2014-10-16 23:36:55

回答

0

只需使用new Date()来代替。它将实例化到当前时间。

+0

刚刚做到了,现在它返回完整日期,而我需要一个时间戳。并且仍然为** now **变量返回null,并为**然后**变量返回日期。 – Drew 2014-10-16 23:26:46

+0

我很确定OP需要毫秒,而不是Date对象。 'Date.now()'已经是正确的工具了。 – Felk 2014-10-16 23:28:47

0

Date.now()工作得很好(不要想到使用Date.parse(new Date()))。在首次使用之前定义并初始化thenthennow - then的价值是多少?

这里有一些事实:

  1. 变量now是本地的功能,因此是功能的未知外。
  2. 函数不返回任何值,因此不能将now的值传递给调用作用域。
  3. 你的代码中没有地方叫做函数。该功能刚刚定义;它必须被调用来执行它内部的代码。

var now = Date.now(); 
 

 
alert(now);