Javascript递归函数不调用自身

时间:2014-10-18 14:02:49

标签: javascript function recursion

我希望有一个关于我开始处理某事的秒数的实时更新。所以我使用递归函数来调用自身。但是当我跑步时,似乎有一个错误,因为它没有更新。以下是我的代码:

        getDiff();
        function getDiff(){
                var date1 = new Date("04/06/2011");
                var d = new Date();

                var month = d.getMonth()+1;
                var day = d.getDate();

                var date2 = new Date($.now());;
                var timeDiff = Math.abs(date2.getTime() - date1.getTime());
                var diffDays = 0;

                // seconds
                $("#webSeconds").html(Math.ceil(timeDiff / (1000))+" seconds"); 

                 setInterval(getDiff(),5000);
        }

正如你所看到的,我正在使用setInterval,但没有任何事情发生,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

setInterval调用中传递函数时,请勿在函数名后使用括号。通过使用括号,您将立即调用该函数,并传递其返回值(在本例中为undefined)。

setInterval(getDiff,5000);
//                 ^ no ()

这不仅限于使用setInterval,在JavaScript中,只要您需要将函数作为参数传递或将其引用赋值给变量,它就不应包括括号。