虽然我在没有starttime
关键字的情况下定义var
变量,因此将其设为全局,但在控制台中记录starttime
会给undefined
。
starttime = new Date();
setInterval(function(starttime){
getTimeElapsed(starttime);
}, 1000);
如何访问函数内的starttime
变量?
答案 0 :(得分:3)
您可以尝试以下方法:
starttime = new Date();
setInterval(function(){
getTimeElapsed(starttime);
}, 1000);
现在您可以访问全局声明的变量starttime
。在您的代码中,您正在访问未定义的变量。为什么?你的函数有一个你从未传递给它的参数。所以它的价值是未定义的。
答案 1 :(得分:2)
您有两个名为starttime
的变量。
一个全球性的,在这里隐含声明:
starttime = new Date();
和一个当地人,在这里宣布:
function(starttime){
由于您不使用本地版本,最好的方法是删除该声明。
setInterval(function(){
或者,明确访问全局:
getTimeElapsed(window.starttime);