课程
/前端开发
/JavaScript
/信息滚动效果制作
老师setInterval('scrollUp()',50);中为什么要加引号,不加运行不出来,什么时候加什么时候不加,还有scrollUp()的括号什么时候加什么时候不加
2015-12-13
源自:信息滚动效果制作 2-2
正在回答
这个确实有点迷惑,涉及到了js函数的作用域以及预编译的问题,setInterval 第一个参数 可以是函数名、匿名函数、函数的引用以及其他可执行代码,没有引号的时候,表示使用的是匿名函数或者函数的引用,有引号的时候,相当于告诉setInterval这个函数,我的引号内时一段可执行代码,然后这个原理,就跟eval函数的原理一样,即让浏览器去编译执行引号内的内容,楼主的代码中,'scrollUp()'就相当于把scrollUp的那段代码直接放在这里,然后去执行,不加引号的话,就是立即执行了,执行完一遍,资源释放,然后第二次执行的时候,就报错了
这样啊,可是老师讲的这种情况是字符串呀,感觉是个方法,为什么要用引号呢
因为setInterval的第一个参数,可以是一个方法的引用,也可以是一个字符串,可以是一个方法。如果是一个方法的引用就是 setInterval(scrollUp,50); 是没有引号,也没有括号的。如果是字符串就是 setInterval('scrollUp()',50); 如果上一个方法就是 setInterval(function(){scrollUp()},50); 这几种方式看个人需求使用。
张筱诺8983 提问者
李晓健 回复 张筱诺8983 提问者
举报
萌妹子带您快速学习滚动效果,掌握无缝滚动和歇间性滚动的制作方法