gpt4 book ai didi

javascript - x未定义,setTimeout问题

转载 作者:行者123 更新时间:2023-12-02 05:34:56 26 4
gpt4 key购买 nike

使用下面的代码我得到一个clock is not defined错误,为什么?

$(function(){   
function clock() {
var nd = new Date();
var h, m, s;
h = nd.getHours();
m = nd.getMinutes();
s = nd.getSeconds();
if (h <= 9) h = "0" + h;
if (m <= 9) m = "0" + m;
if (s <= 9) s = "0" + s;
$('#digital-clock .hour').text(h+':');
$('#digital-clock .min').text(m+':');
$('#digital-clock .sec').text(s);
}
setTimeout('clock()', 1000);
});

最佳答案

因为当你传递一个字符串给setTimeout时,里面的代码会在超时的时候在全局范围内执行。全局范围内的代码无法访问您调用 setTimeout 时存在的任何局部变量。

不要将字符串传递给 setTimeout,它总是很糟糕(它基本上是一个延迟的 eval,我们都讨厌 eval 嗯? ).而是使用 Function 对象:

setTimeout(clock, 1000);

您也可以使用内联函数表达式来创建您的函数,例如:

setTimeout(function() {
var nd= new Date();
...
}, 1000);

关于javascript - x未定义,setTimeout问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3780161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com