猿问

js关于定时器中定义变量的问题。

 // 歌词同步

    var cusS = 0;

    function syncLyric(curS, formatTimeArr) {

        curS = Math.floor(curS);

        if (curS == formatTimeArr[lrcHighIndex]) {

            Dom.lrc.eq(lrcHighIndex).addClass('current').siblings().removeClass('current');

            if (lrcHighIndex >= 1) {

                moveDis = Util.getMoveDis(lrcHighIndex - 2);

                

                Dom.lrcwrap.animate({

                    "top": "-" + 0.46 * lrcMoveIndex + "rem"

                });

                lrcMoveIndex++;

            }

            lrcHighIndex++;

        }

    }

这是一段自己同步歌词的代码,每隔一秒执行一次syncLyric函数,想问一下如果我把外面的curS=0去掉,在syncLyric内部给curS加个var,会更耗性能吗?还是说没什么区别。?求解释

婷婷同学_
浏览 1042回答 1
1回答

萧十郎

我觉得区程序执行这个函数时遇到这个变量时会查找这个变量,相应的就会查找作用域链,先查找自身内部的若有则使用,若没有则继续向作用域链上层查找,直到查到,若找到最上层还未查到,则返回未定义。所以写里面会少一步向上层查找的步骤,应该会影响性能吧
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答