javascript - 使用单引号与不使用引号的函数调用

标签 javascript html

以下代码片段使用函数 setInterval() 来不断更新“时钟”。唯一的区别在于函数调用 setInterval()。

当我更改 setInterval 参数时

setInterval('updateTime()',1000); 

setInterval(updateTime(),1000); 

[从单引号到无引号],它不起作用。谁能给我解释一下吗?

单引号:

<head>
    <script>
        function updateTime(){
            var today = new Date();
            var h = today.getHours();
            var m = today.getMinutes();
            var s = today.getSeconds();
            var now= h+':'+m+':'+s;
            document.getElementById('timer').innerHTML = h+':'+m+':'+s;//set the text in 'timer' id below to the date
            setInterval('updateTime()', 1000); //////SEE THIS LINE//////
        }
    </script>
</head>
<body>
    <p id='timer'> Time </p>
    <script>
        updateTime();
    </script>
</body>

没有引号:

<head>
    <script>
        function updateTime(){
            var today = new Date();
            var h = today.getHours();
            var m = today.getMinutes();
            var s = today.getSeconds();
            var now= h+':'+m+':'+s;
            document.getElementById('timer').innerHTML = h+':'+m+':'+s;//set the text in 'timer' id below to the date
            setInterval(updateTime(), 1000);//////SEE THIS LINE//////
        }
    </script>
</head>
<body>
    <p id='timer'> Time </p>
    <script>
        updateTime();
    </script>
</body>

用于测试的在线js控制台可以在这里找到:https://jsfiddle.net/

最佳答案

 setInterval('updateTime()', 1000); 

您将字符串作为第一个参数传递给 setInterval。您需要传递函数引用

正确的方法

setInterval(updateTime, 1000)

关于javascript - 使用单引号与不使用引号的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166900/

相关文章:

javascript - 透明 src 以便背景显示

jquery - html5 表单验证 modernizr safari

javascript - 如何使用 MVVM 创建自定义模板下拉列表剑道?

javascript - 从字符串中提取 5 个字符后的文本且没有最后一个斜杠

javascript - 图像图标直到我悬停在它上面才出现? - CSS/JS 问题 - 添加事件小部件

html - 选择子元素 css

javascript - 检查div是否滚动到底部,如果没有则不理会

php - 如果表单验证失败,请不要提交表单

javascript - 包含动态数字的变量

javascript - 将 Rails 3 应用程序从 Prototype 转换为 jQuery 的最新、有效的方法是什么?