`
weskycn
  • 浏览: 31001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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.
分享到:
评论

相关推荐

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

    这是我们常常会使用方法setInterval或setTimeout,但是由于这两个方法是由脚本宿主模拟出来的Timer线程,在通过其调用我们的方法是不能为其传递参数。 我们常用的使用场景是: 代码如下:window.setTimeout(...

    HTML5如何用window.postMessage在网页间传递数据

    估计很少人知道HTML5 APIS里有一个window.postMessage API。window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是...setInterval(funct[......] 阅读全文>>

    精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!

    精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!

    使用自定义setTimeout和setInterval使之可以传递参数和对象参数

    /****************************************************** // // 功能: 修改window.setTimeout,使之可以传递参数和对象参数 // 使用方法: window.setTimeout(回调函数,延迟时间,参数1,参数n) // ******************...

    JS中setInterval、setTimeout不能传递带参数的函数的解决方案

    在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数, 这就需要想方法解决。 一、采用字符串形式:——(缺陷)参数不能被周期性改变 setInterval(“foo(id...

    Javascript DHTML 实例编程(教程)(四)初级实例篇2—动画

    上篇说了动态创建结点和删除结点的例子,这一篇说一些如何...1000)将可能抛出一个异常,这个时候,通常是你要传递一个对象参数,我建议用这样的一个办法来解决,也建议使用这种方法来使用window.setTimeout和window.se

    javascript函数的解释

    43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName 44.parent代表父亲对象,top代表最顶端对象 45.打开子窗口的父窗口为:opener 46.表示当前所属...

    js中的setInterval和setTimeout使用实例

    setInterval() 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来执行函数或表达式。该方法会不停地循环调用函数,直到使用 clearInterval() 明确...一个可以传递给 Window.clearInterval() 从而取消对 co

    js使用小技巧

    网页传递参数 location.search(); 可编辑 obj.contenteditable=true 执行菜单命令 obj.execCommand 双字节字符 /[^x00-xff]/ 汉字 /[u4e00-u9fa5]/ 让英文字符串超出表格宽度自动换行 word-wrap: ...

    js常用代码段整理

    代码如下: /* 功能:修改 window.setTimeout,使之可以传递参数和对象参数 (同样可用于setInterval) 使用方法: setTimeout(回调函数,时间,参数1,…,参数n) (FF已经原生支持,IE不支持) */ var __sto = ...

    js常用代码段收集

    代码如下: /* 功能:修改 window.setTimeout,使之可以传递参数和对象参数 (同样可用于setInterval) 使用方法: setTimeout(回调函数,时间,参数1,…,参数n) (FF已经原生支持,IE不支持) */ var __sto = ...

    JavaScript笔记

    如果省略该参数,则使用逗号作为分隔符 |--2.toString()方法--可把数组转换为字符串,并返回结果 |--3.concat()方法--用于连接两个或多个数组,该方法不会改变现有的数组 |--4.slice()方法--截取元素。根据给定的...

Global site tag (gtag.js) - Google Analytics