`
haofeng82
  • 浏览: 144468 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

javascrip setInterval 函数在一个对象内部的调用问题

阅读更多

最近改进了一下以前写的多幅图片轮流切换展示的代码,以前只是以类的方式整合到了dojo,并且在使用时必须显式调用window.setInterval方法。

这样有下面两个缺点:1 需要指定各个存放显示数据容器的名称或者传递引用进去。

2 必须显式调用window.setInterval方法才能开始循环。

很麻烦。

现在将它做成了widget,只需要传递进需要展示的数据以及循环间隔描述就可以了。

制作widget的方法就不说了,但在其中遇见了一个问题,那就是:

在一个widget(可以看做是一个javascript对象)中,如何定时循环执行当前对象的方法呢?

直接用window.setInterval("this.doXXX()",5)是无法执行的。虽然在这里我觉得this代表的应该是当前的widget,但好像javascript不是这样认为的。

按照他的理解,估计是将this当作了window对象了??

于是只能采取另一种思路:如果在最外层,也就是直接在页面上获取到当前的widget对象不就成了么?

那么,如何取到当前widget对象很简单的,通过dijit.byId(),就可以了。

所以,我这样写:

postCreate: function(){

……………………
setInterval("dijit.byId('"+this.id+"').rollerAd.showNext()",this.rollerAd.chandeSecond*1000);

………………


}

果然没有问题了。

小结:目前认为使用window.setInterval();中的方法必须是能够从window对象这一级别向下一级级取到的。所以想在一个对象内部定义一个setInterval,必须拥有这个对象在window对象级别(可以级级向下关联获取到)的引用

分享到:
评论

相关推荐

    JavaScript中setTimeout和setInterval函数的传参及调用_.docx

    在 JavaScript 中,setTimeout 和 setInterval 函数都是用于在指定的时间点执行某个函数的,但是它们的传参方式和调用方式却有所不同。 setTimeout 函数 setTimeout 函数用于在指定的时间点执行某个函数,语法格式...

    在javascript函数中调用com组件的属性和方法

    在上面的示例代码中,我们使用了`setInterval`函数来设置一个定时器,每隔50毫秒执行一次`displaystr`函数。在`displaystr`函数中,我们使用COM组件的方法和属性来实现时钟的功能,例如获取当前时间、设置当前时间、...

    定时器(setTimeout/setInterval)调用带参函数失效解决方法

    setInterval(code,millisec[,”lang”]) setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 参数 描述 code 必需,要调用的函数或要执行的代码串。 millisec 必需,周期性执行或调用...

    我写的调用网页的javascript函数!请大家帮忙看看!

    ”表明这是一个关于JavaScript编程的问题,特别是涉及到在网页环境中使用JavaScript函数。JavaScript是一种广泛用于网页开发的脚本语言,它可以用来控制网页的行为,如响应用户交互、操作DOM(文档对象模型)以及与...

    Javascript中, setTimeout() 和 setInterval() 的方法

    在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...

    setInterval 引起的性能问题

    在JavaScript编程中,`setInterval`是一个非常常用的函数,它用于定期执行某个任务。然而,如果不正确地使用,`setInterval`可能导致各种性能问题。这篇博客文章“setInterval引起的性能问题”探讨了这些问题以及...

    几个常用javascript函数

    `setTimeout()`用于在指定时间后调用一个函数或执行某段代码,而`clearTimeout()`则用于取消由`setTimeout()`设置的定时器。例如: ```javascript let timeoutId = setTimeout(function() { console.log("Timeout...

    函数和window对象

    另一方面,如果一个函数希望对外部环境产生影响,它可以修改`window`对象的属性或调用其方法。 函数可以通过`window`对象的属性来访问浏览器的一些功能,例如`window.history`用于操作浏览历史,`window.navigator`...

    javascript常用函数集合

    19. **原型和原型链**:所有JavaScript对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象,形成了原型链。 20. **模块化**:使用`import`和`export`进行模块导入和导出,支持静态分析和优化。 以上...

    深化理解setTimeout函数和setInterval函数_.docx

    `setInterval`函数则会每隔指定的时间间隔持续调用一个函数或执行一段代码。其语法为: ```javascript setInterval(function, interval); ``` `function`是需要周期性执行的函数,`interval`是执行间隔(以...

    Javascript函数帮助手册

    3. `setInterval()`: 重复执行一个函数,直到被`clearInterval()`清除。 六、事件处理 JavaScript函数常用于响应用户的交互,如点击按钮、页面加载等。`addEventListener()`和`removeEventListener()`用于添加和...

    JavaScript中setTimeout和setInterval函数的传参及调用

    在JavaScript中,通过setTimeout和setInterval函数执行代码块时,传递参数需要特别注意函数的引用和代码字符串的使用。推荐的做法是使用函数引用,并且在可能的情况下使用闭包来封装外部变量,以保证代码的安全性...

    关于JS定时器(setTimeout setInterval)定时不准问题1

    setInterval函数用于在指定的延迟时间后循环执行一个函数,直到它被取消。 浏览器中的执行机制 在浏览器中,所有的JavaScript代码都是在单线程上执行的。因此,异步事件(比如鼠标点击和定时器)仅在线程空闲时才...

    JavaScript调用WebService实例总结

    在例子中,使用`setInterval`函数每隔1秒(1000毫秒)调用一次`getdata`函数,这样可以实现数据的实时更新。这种方法适用于需要定期刷新数据的场景,如实时显示天气、股票等信息。 3. WebService调用: 调用...

    关于setInterval定时器的使用示例

    在JavaScript中,`setInterval`是一个非常常用的函数,用于定期执行某个函数或代码块。它在Web开发中扮演着重要角色,特别是在创建动画效果、定时更新内容或者执行后台任务时。下面我们将深入探讨`setInterval`的...

    javascript 所有函数 代码+目录

    这个压缩包文件“javascript 函数速查”提供了一个详尽的JavaScript函数手册,包含代码示例和目录结构,使得开发者能够快速查询和理解各种函数的用法。 目录通常按照函数类别或功能进行组织,可能包括数据类型操作...

    JavaScript核心对象参考手册

    `arguments`对象是每个函数内部的,用于访问函数调用时传递的参数。`call()`和`apply()`方法允许你在不同的上下文中调用函数,`bind()`则可以创建一个新的函数,保持原函数的this指向。 七、Date对象 Date对象用于...

    javascript回调函数详解参考.docx

    5. **链式调用**:回调函数可用于实现链式调用,特别是在对象方法中,通过在方法内部调用回调来保持链式结构。例如,jQuery的链式API就大量使用了这个概念。 6. **setTimeout和setInterval**:这两个函数接受一个回...

    vue 解决setTimeOut和setInterval函数无效报错的问题

    问题在于,当在Vue组件的方法中使用`setTimeout`或`setInterval`时,由于函数内部的`this`不再指向Vue实例,而是指向全局对象(在浏览器环境中通常是`window`)。因此,当尝试调用如`this.time()`这样的方法时,...

    js 每隔两秒执行一个函数 javascript

    在JavaScript编程中,定时执行一个任务是常见的需求,比如每隔两秒执行一个特定的函数。这个功能可以通过JavaScript的内置函数`setInterval`来实现。`setInterval`允许我们指定一个函数,然后按照设定的时间间隔重复...

Global site tag (gtag.js) - Google Analytics