1

例如,如果我要按照以下方式格式化我的代码

<script type="text/javascript">
    var timeout;
    function auto() {
        $.ajax({
                url: "functions/ajax.php",
                data: "func=auto",
                type: "GET",
                dataType: "json",
                success: function(data){
                       $.each(data.search, function (i, v) {
                               console.log('Success ' + v);
                       });
                },
                error: function (jqXHR, textStatus, errorThrown){
                       console.log('Error ' + jqXHR);
                }
        });
     }

    function start() {
    timeout = setTimeout('auto()', 2000);
    }

    function stop(){
        clearTimeout(timeout);
}
</script>

myvar timeout不是由值定义有关系吗?由于实际超时甚至没有处理,它运行auto()一次函数,然后停止

4

1 回答 1

2

首先,不要在 setTimeout 中使用引号(我不确定,但我相信调用eval()),只需通过引用传入函数即可setTimeout(auto, 2000)

其次,JavaScript 是一种动态类型的语言,这意味着变量没有固定的类型,它们可以根据情况而变化,因此您的代码是完全有效的。

最后,如果您不打算在超时期间中止超时,则无需清除它,因为它会在执行后消失。

于 2013-03-12T19:16:05.250 回答