MoviePlayer.prototype.moveDiv = function() {
var curDiv = $('u' + this.groupName + '_' + this.current_id);
if(curDiv.style.posLeft != 0) {
curDiv.style.posLeft = curDiv.style.posLeft * 0.8;
var self = this;
window.setTimeout(function(){ self.moveDiv(); }, 30);
} else {
}
}
上述调用的时候,要注意两个地方:
- 注意this引用的存储,如果在setTimeout里写this,那么系统会认为this指向setTimeout方法所属的window对象;
- setTimeout里的参数的正确写法:window.setTimeout(function(){ self.moveDiv(); }, 30);而不是window.setTimeout(self.moveDiv, 30);
非常感谢js 中 setTimeout()的用法, 该文分析得比较详细。
分享到:
相关推荐
这也意味着,如果执行函数本身需要的时间超过设定的延迟,可能会出现函数调用的重叠。 考虑以下示例,每1秒钟应该打印一个数字,但由于函数执行时间过长,实际效果可能并非如此: ```javascript let i = 0; const ...
// 将被递归调用的函数本身,拼成字符串形式 var repeat = "moveing('" + id + "'," + target_x + "," + target_y + "," + t + ")"; // 使用setTimeout var movment = setTimeout(repeat, t); } ``` 这种方法...
// 被递归调用的函数本身,拼成字符串形式,注意第一个参数的引号 var repeat = "moveing('" + id + "'," + target_x + "," + target_y + "," + t + ")"; var movment = setTimeout(repeat, t); } ``` 通过上述...
然而,由于setTimeout本身返回的定时器ID并不是一个promise对象,因此它并不支持链式调用。在一些情况下,开发者可能希望在setTimeout执行后执行一些后续操作,这时就需要使用一些技巧来实现链式操作。 在提供的...
之后,通过调用setTimeout函数,以1000毫秒(即1秒)为周期递归调用showtime函数本身,实现时间的实时更新。 具体来说,showtime函数执行以下步骤: 1. 创建一个新的Date对象,这将返回当前时间。 2. 使用Date对象...
一个常见的需求是在setTimeout()中调用函数并传递参数,但是在使用字符串作为回调函数调用时,直接传递参数的方式可能会导致“未定义”的错误。这是因为JavaScript引擎无法识别字符串中的变量。为了解决这个问题,...
jQuery库本身提供了`'swing'`和`'linear'`两个内置的缓动函数,但也可以使用第三方插件如`jQuery.easing`来扩展更多的选项。 综上所述,`animate()`是jQuery中实现动态效果的重要手段,通过合理的重复调用,我们...
而在Mozilla系列(包括Firefox)中,`setTimeout` 函数可以接受额外的参数,这些参数会被传递给被调用的函数,这也是为什么Firefox表现不同的原因。 使用 `setTimeout` 时,通常推荐使用函数对象而非字符串,因为...
随着ES6的发布及其后续版本的不断迭代,JavaScript语言本身以及社区围绕着异步处理提供了多种解决方案。本文档介绍了一种名为`Async.Operation`的自定义异步调用框架,它支持链式调用,旨在简化异步任务的管理和执行...
通常情况下,间歇调用setInterval可以被多个setTimeout调用替代。在一些特殊情况下,使用setTimeout来代替setInterval可以提供更好的控制。例如,可以在每次执行函数之后决定下一次是否执行,或者调整下一次的执行...
通过递归地调用setTimeout,我们可以控制任务的执行时间,确保前一个任务执行完毕后再安排下一个任务。这种方法的典型示例代码如下: ```javascript function do_sth() { console.log('Hello'); // 执行耗时操作....
自己不容易看懂的,并且加了完整的注释 希望能够帮到大家。里面的js代码写的不错,看完了 完全弄明白了其中原理,例如闭包 settimeout调用对象本身之类的 估计也需要时间的积累,google首页特效 希望大家喜欢
但是当 `thread_result` 被作为字符串传递给 `setTimeout` 时,`this` 的指向并不是 `Calendar` 实例本身,而是全局对象(在浏览器环境中为 `window`)。这会导致 `this` 指向错误,从而使得内部的方法无法正常工作...
就像在快餐店点餐,我们支付后收到一张收据(Promise),这个收据代表着未来的汉堡,而不是汉堡本身。我们可以继续做其他事情,而当汉堡准备好时,我们可以用收据换取汉堡。如果汉堡售罄,那么Promise就会失败,就像...
然后,通过`setInterval`设置定时器,并在定时器到期时周期性地执行`toggleSomething`函数本身。如果需要停止定时器,可以使用`clearInterval`函数,并传入定时器的ID。 在代码中,我们使用`$("#box").toggleClass...
- **动态组件**:如果组件本身是动态加载的,每次切换时,`mounted` 都会被调用。 - **`v-if` 与 `v-show`**:`v-if` 会根据条件判断是否创建 DOM 元素,如果条件变化,`mounted` 可能会再次执行。相比之下,`v-...
在JavaScript中,`setTimeout`函数通常用于异步执行任务,它会在指定的毫秒数后调用提供的函数或表达式。然而,`setTimeout`本身是非阻塞的,并且不直接支持返回值。这意味着你不能立即获取到`setTimeout`执行的结果...
1 对于this关键词的不正确使用 Game.prototype.restart = function () { ... this是指代当前对象本身,this的调用和它所在的环境密切相关。上面的错误是因为在调用setTimeout函数的时候,实际调用的是window.s