网络编程 
首页 > 网络编程 > 浏览文章

在window.setTimeout方法中传送对象

(编辑:jimmy 日期: 2025/12/14 浏览:3 次 )
其语法是:

window.setTimeout(expr,msec)

    expr是执行字符串,在msec毫秒之后,就会作为js运行。我昨天才发现,原来expr也可以是一个函数,呵呵,用这个特性,就可以进行对象的传送了。
    下面的代码实现了把函数foo1中的对象p,延时传送到函数foo2中的功能。 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
现在很多框架其实都直接一种多投事件(它的实现原理也不复杂),一个多投事件本身,其实是是一个标准的函数,但是它一般有下述的方法。

MuEvent.add = function (func) { ... }

MuEvent.addMethod = function (instance, func) { ... }

 

当使用第一种方法时,在激活func这个事件处理函数时,使用MuEvent的当前实例为this对象;第二种则使用传入的instance作为this对象。

 

因此对于setTimeout来说,我们传统的方法要这样使用它来激活方法:

----------
function doTimer() {
  obj1.call();
  obj2.call();
}
setTimeout(doTimer, 1000);


而使用多投事件的代码就可以如下:

----------
var e = new MuEvent();
e.addMethod(obj1, obj1.call);
e.addMethod(obj2, obj2.call);

setTimeout(e, 1000);
----------

 

当然,你想要写得COOL一点,可以是这样:

----------

setTimeout(function() {

  return new MuEvent(obj1, obj1.call, obj2, obj2.call); 

}(), 1000);
----------  

作为一点点介绍,我所做的Qomo是用这种形式来实现的MuEvent。象Atlas之类的框架,大多也采用类似的方法。
上一篇:js版本A*寻路算法
下一篇:另类网页中添加运行效果
一句话新闻
Windows上运行安卓你用过了吗
在去年的5月23日,借助Intel Bridge Technology以及Intel Celadon两项技术的驱动,Intel为PC用户带来了Android On Windows(AOW)平台,并携手国内软件公司腾讯共同推出了腾讯应用宝电脑版,将Windows与安卓两大生态进行了融合,PC的使用体验随即被带入到了一个全新的阶段。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 网站地图 SiteMap