javascript - 函数中能声明函数嘛?
迷茫
迷茫 2017-04-10 14:58:12
[JavaScript讨论组]
    function try1(){
        var i = 0;
        function fontChange (){
            var font =["载","入","中"];
            document.getElementById("p1").innerHTML=font[i];
            i=i+1;
            if (i==3){i=0}
        }
        t=window.setInterval("fontChange()",1000)
    }
    onload=try1()

console 中显示错误, fontChane未声明。
但我看w3school中个一个例子

     var iBaseNum = 10;

    function addNum(iNum1, iNum2) {
        function doAdd() {
            return iNum1 + iNum2 + iBaseNum;
        }
        return doAdd();
    }

这就可以。。。。。
是我代码写错了嘛?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
天蓬老师

首先,函数中是可以声明函数的,这里出错的原因不在这里,而是这条语句:

t = window.setInterval("fontChange()",1000);

传入的“fontChange()”会被解析为去调用全局对象window下的fontChange()函数,由于window下未定义fontChange()函数,所以这里会提示错误“fontChane未声明”。
调用setInterval函数的时候传入字符串参数是一种很不好的做法,任何时候都要尽量避免这种做法。
要解决这个问题,这里可以这样写:

t = window.setInterval(fontChange,1000);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号