window.setInterval() 使用方式与参数传递问题

timerID = window.setInterval('scrollLeft()',timer); //这样使用是正确的
timerID = window.setInterval('scrollLeft(obj)',timer); //除非obj是全局变量,否则这样使用是错误的

在window.setInterval后面所跟的函数scrollLeft()里面的参数param必须是全局变量才可以,如果既想传递参数,又不想设定全局变量,解决这个问题的办法可以使用匿名函数包装的方式:

timerID = window.setInterval(function(){
  scrollLeft(obj);
},timer);

function scrollLeft(obj) {
  // some other things
}

这样一来,就可以不再依赖于全局变量向scrollLeft函数中传递参数,毕竟当页面中的全局变量多了以后,会给脚本的开发、调试和管理等带来极大的困惑,代码也比较ugly.

你可能感兴趣的:(脚本)