`
weskycn
  • 浏览: 31488 次
  • 性别: 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.clearInterval与window.setInterval的用法.

    ### window.clearInterval与window.setInterval的用法 在前端开发中,经常需要用到定时器来实现某些功能,例如计时器、轮播图等。而`window.setInterval`和`window.clearInterval`是JavaScript中用于处理定时任务的...

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

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

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

    在实际开发过程中,使用匿名函数包装的方法是处理setTimeout和setInterval参数传递问题的最佳实践。这种方式既简洁又高效,既避免了全局变量的滥用,又保证了代码的安全性和可维护性。总之,理解并正确使用...

    Three.JS动画实现:window.setInterval()

    `setInterval(function, milliseconds, param1, param2, ...)`这个函数会周期性地以`milliseconds`指定的时间间隔执行`function`函数,`param1, param2, ...`则是传递给该函数的参数。在Three.js中,我们可以利用这...

    JavaScript_window.setTimeout()_的详细用法

    #### 四、`window.setTimeout()`与`window.setInterval()`的区别 虽然`setTimeout`和`setInterval`都用于延迟执行代码,但它们之间有一个关键的区别:`setInterval`会重复执行指定的函数,直到被清除或窗口关闭;而...

    关于js-window对象的方法和属性资料

    本文将详细介绍与`window`对象相关的方法和属性,帮助开发者深入了解并掌握这些特性。 #### 一、Window对象常用方法 ##### 1. `window.open()` - **语法**:`window.open(url, name, features)` - **描述**: - ...

    window.setInterval()方法的定义和用法及offsetLeft与style.left的区别

    `window.setInterval()` 是JavaScript中的一个核心方法,用于在指定的时间间隔内重复执行某段代码。这个方法在创建动画效果、执行定时任务或者持续更新页面内容等场景中非常常见。`setInterval()` 接受两个参数:要...

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

    在JavaScript中,`setInterval` 和 `setTimeout` 是两个非常重要的定时器函数,它们用于在指定的时间间隔后执行一次或多次指定的...在实际开发中,根据项目需求和代码可读性,可以选择合适的方法来解决参数传递的问题。

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

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

    函数和window对象

    它们不仅可以执行特定任务,还可以作为一等公民,即函数可以赋值给变量、作为参数传递给其他函数,甚至作为其他函数的返回值。这种特性使得JavaScript支持函数式编程风格。 函数定义有两种主要方式:函数声明和函数...

    javascript Window及document对象详细整理

    JavaScript中的Window对象是全局对象,它是每个...理解并熟练掌握Window对象及其成员对象的使用,是进行JavaScript网页开发的基础,它们可以帮助开发者实现与用户的交互,控制页面行为,并获取有关用户环境的详细信息。

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

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

    Java Script中setinterval怎么用?怎么才能让setinterval停下来?.pdf

    - **param1, param2, ...**:可选参数,传递给`function`的参数。 例如,下面的代码会在页面加载后每隔一秒(1000毫秒)在控制台输出一次“Hello, World!”: ```javascript window.onload = function() { var ...

    仅IE不支持setTimeout/setInterval函数的第三个以上参数

    这里使用了 `Array.prototype.slice.call` 来获取 `arguments` 对象的数组形式,然后通过 `apply` 将这些参数传递给回调函数。 总的来说,了解不同浏览器对 `setTimeout` 和 `setInterval` 额外参数的支持情况是...

    Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)

    下面是一个具体的例子,演示了如何使用setInterval和setTimeout,以及如何传递参数: ``` // 循环执行,每隔3秒钟执行一次showalert(),showalert()函数接收一个参数 var timeId = window.setInterval(function() ...

    JavaScript—window对象使用示例

    当使用`showModalDialog`打开窗口时,可以将值作为第二个参数传递。 - 父窗口: ```javascript function opendialog() { window.showModalDialog("child.html", window, "win", "resable=false"); } ``` - ...

    理解javascript定时器中的setTimeout与setInterval

    与`setTimeout`一样,`setInterval`在标准浏览器和IE10以上版本也支持传递额外参数。 然而,`setTimeout`和`setInterval`在处理`this`关键字时有一个常见问题。由于它们执行的代码是在全局作用域中,因此`this`通常...

    Javascript 定时器调用传递参数的方法

    总的来说,通过自定义函数或者使用 IIFE(立即执行函数表达式),我们可以有效地解决在 Javascript 定时器中传递参数的问题。这些技术确保了函数能够接收到它们所需要的参数,并按照预期的方式执行。这些方法在处理...

Global site tag (gtag.js) - Google Analytics