最近改进了一下以前写的多幅图片轮流切换展示的代码,以前只是以类的方式整合到了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 函数都是用于在指定的时间点执行某个函数的,但是它们的传参方式和调用方式却有所不同。 setTimeout 函数 setTimeout 函数用于在指定的时间点执行某个函数,语法格式...
在上面的示例代码中,我们使用了`setInterval`函数来设置一个定时器,每隔50毫秒执行一次`displaystr`函数。在`displaystr`函数中,我们使用COM组件的方法和属性来实现时钟的功能,例如获取当前时间、设置当前时间、...
setInterval(code,millisec[,”lang”]) setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 参数 描述 code 必需,要调用的函数或要执行的代码串。 millisec 必需,周期性执行或调用...
”表明这是一个关于JavaScript编程的问题,特别是涉及到在网页环境中使用JavaScript函数。JavaScript是一种广泛用于网页开发的脚本语言,它可以用来控制网页的行为,如响应用户交互、操作DOM(文档对象模型)以及与...
在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...
在JavaScript编程中,`setInterval`是一个非常常用的函数,它用于定期执行某个任务。然而,如果不正确地使用,`setInterval`可能导致各种性能问题。这篇博客文章“setInterval引起的性能问题”探讨了这些问题以及...
`setTimeout()`用于在指定时间后调用一个函数或执行某段代码,而`clearTimeout()`则用于取消由`setTimeout()`设置的定时器。例如: ```javascript let timeoutId = setTimeout(function() { console.log("Timeout...
另一方面,如果一个函数希望对外部环境产生影响,它可以修改`window`对象的属性或调用其方法。 函数可以通过`window`对象的属性来访问浏览器的一些功能,例如`window.history`用于操作浏览历史,`window.navigator`...
19. **原型和原型链**:所有JavaScript对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象,形成了原型链。 20. **模块化**:使用`import`和`export`进行模块导入和导出,支持静态分析和优化。 以上...
`setInterval`函数则会每隔指定的时间间隔持续调用一个函数或执行一段代码。其语法为: ```javascript setInterval(function, interval); ``` `function`是需要周期性执行的函数,`interval`是执行间隔(以...
3. `setInterval()`: 重复执行一个函数,直到被`clearInterval()`清除。 六、事件处理 JavaScript函数常用于响应用户的交互,如点击按钮、页面加载等。`addEventListener()`和`removeEventListener()`用于添加和...
在JavaScript中,通过setTimeout和setInterval函数执行代码块时,传递参数需要特别注意函数的引用和代码字符串的使用。推荐的做法是使用函数引用,并且在可能的情况下使用闭包来封装外部变量,以保证代码的安全性...
setInterval函数用于在指定的延迟时间后循环执行一个函数,直到它被取消。 浏览器中的执行机制 在浏览器中,所有的JavaScript代码都是在单线程上执行的。因此,异步事件(比如鼠标点击和定时器)仅在线程空闲时才...
在例子中,使用`setInterval`函数每隔1秒(1000毫秒)调用一次`getdata`函数,这样可以实现数据的实时更新。这种方法适用于需要定期刷新数据的场景,如实时显示天气、股票等信息。 3. WebService调用: 调用...
在JavaScript中,`setInterval`是一个非常常用的函数,用于定期执行某个函数或代码块。它在Web开发中扮演着重要角色,特别是在创建动画效果、定时更新内容或者执行后台任务时。下面我们将深入探讨`setInterval`的...
这个压缩包文件“javascript 函数速查”提供了一个详尽的JavaScript函数手册,包含代码示例和目录结构,使得开发者能够快速查询和理解各种函数的用法。 目录通常按照函数类别或功能进行组织,可能包括数据类型操作...
`arguments`对象是每个函数内部的,用于访问函数调用时传递的参数。`call()`和`apply()`方法允许你在不同的上下文中调用函数,`bind()`则可以创建一个新的函数,保持原函数的this指向。 七、Date对象 Date对象用于...
5. **链式调用**:回调函数可用于实现链式调用,特别是在对象方法中,通过在方法内部调用回调来保持链式结构。例如,jQuery的链式API就大量使用了这个概念。 6. **setTimeout和setInterval**:这两个函数接受一个回...
问题在于,当在Vue组件的方法中使用`setTimeout`或`setInterval`时,由于函数内部的`this`不再指向Vue实例,而是指向全局对象(在浏览器环境中通常是`window`)。因此,当尝试调用如`this.time()`这样的方法时,...
在JavaScript编程中,定时执行一个任务是常见的需求,比如每隔两秒执行一个特定的函数。这个功能可以通过JavaScript的内置函数`setInterval`来实现。`setInterval`允许我们指定一个函数,然后按照设定的时间间隔重复...