猿问

showTime函数为何不能内置

<html>  

<head>  

<script type="text/javascript"> 

    function showTime(){

            var c=document.getElementById("text");

            var nowTime=new Date();

            c.innerHTML="time is  "+nowTime.toLocaleTimeString();

            }    

    function startTime(){        

        setInterval("showTime()",50);

        }


</script>  

</head>  

<body onload="startTime()">  

<div id="text"></div>  

</body>  

</html> 


这个程序运行良好,一个简单的clock,正常运行。

我现在做一个简单的调整

<html>  

<head>  

<script type="text/javascript">         

    function startTime(){

        function showTime(){

            var c=document.getElementById("text");

            var nowTime=new Date();

            c.innerHTML="time is  "+nowTime.toLocaleTimeString();

        }        

        setInterval("showTime()",50);

    }    

</script>  

</head>  

<body onload="startTime()">  

<div id="text"></div>  

</body>  

</html> 


运行出现错误 

ReferenceError: showTime is not defined

为何会这样?

showTime这个函数明明在startTime这个函数的开头部位,为何会找不到?

请解释一下整个函数运行的过程。


冉冉说
浏览 929回答 1
1回答

HUH函数

setInterval的调用是在全局作用域下调用的,所以如果你第一个参数是字符串的话,字符串里的函数必须也在全局作用域下定义,他才能找到该函数。否则你需要将第一个参数改为showTime,或者function(){showTime();}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答