首页 > 函数中能声明函数嘛?

函数中能声明函数嘛?

    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();
    }

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


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

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

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

t = window.setInterval(fontChange,1000);
【热门文章】
【热门文章】