在Javascript类中使用setTimeout第2/2页
更新时间:2008年01月22日 23:19:38 作者:
在Javascript类中使用setTimeout
window.setTimeout('window.Obj.shout()', 5000);另外,之前我也想到将对象保存为数组,然后引用调用,代码如下:
function ObjectClass (property) {
this.property = property;
this.id = ObjectClass.cnt;
ObjectClass.objects[ObjectClass.cnt++] = this;
this.method = ObjectClass_method;
}
ObjectClass.cnt = 0;
ObjectClass.objects = new Array();
function ObjectClass_method () {
setTimeout('ObjectClass.objects[' + this.id + '].method();', 5000);
}
var obj1 = new ObjectClass('feelinglucky');
obj1.method();不过个人感觉还是上述第一种方法清晰得多。
后记,Javascript 看来的确还是很多需要谨慎对待的地方,尤其是对象机制。就犹如我之前所说的,Javascript 并不比其他语言要复杂,但是它也没有你想象中的简单。
PS:完成这道题目以后, Google 发现其他的兄弟早已经解决了此类的问题,比如这里还有这里,可以对比参考一下。
--------------------------------------------------------------------------------
更新,感谢 Sheneyan 兄弟的提醒,还有另外的一个办法就是通过 Closure(闭包) 来实现,代码如下:
var Obj = function(msg){
this.msg = msg;
this.shout = function() {
alert(this.msg);
this.waitAndShout();
}
var _self = this;
this.waitAndShout = function() {
setTimeout(function(){_self.shout()}, 5000);
}
}
var testObj = new Obj("Hello,World!");
testObj.shout();看来这道题已经不能再害人了 :^)
您可能感兴趣的文章:
- JavaScript window.setTimeout() 的详细用法
- JavaScript setTimeout和setInterval的使用方法 说明
- javascript setTimeout()传递函数参数(包括传递对象参数)
- Javascript延迟执行实现方法(setTimeout)
- Javascript对象中关于setTimeout和setInterval的this介绍
- javascript setTimeout和setInterval计时的区别详解
- JavaScript SetInterval与setTimeout使用方法详解
- Javascript的setTimeout()使用闭包特性时需要注意的问题
- javascript中setTimeout使用指南
最新评论