在window.setTimeout方法中传送对象
在window.setTimeout方法中传送对象
发布时间:2016-12-30 来源:查字典编辑
摘要:其语法是:window.setTimeout(expr,msec)expr是执行字符串,在msec毫秒之后,就会作为js运行。我昨天才发现,...

其语法是:

window.setTimeout(expr,msec)

expr是执行字符串,在msec毫秒之后,就会作为js运行。我昨天才发现,原来expr也可以是一个函数,呵呵,用这个特性,就可以进行对象的传送了。

下面的代码实现了把函数foo1中的对象p,延时传送到函数foo2中的功能。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

现在很多框架其实都直接一种多投事件(它的实现原理也不复杂),一个多投事件本身,其实是是一个标准的函数,但是它一般有下述的方法。

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

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

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

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

----------

functiondoTimer(){

obj1.call();

obj2.call();

}

setTimeout(doTimer,1000);

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

----------

vare=newMuEvent();

e.addMethod(obj1,obj1.call);

e.addMethod(obj2,obj2.call);

setTimeout(e,1000);

----------

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

----------

setTimeout(function(){

returnnewMuEvent(obj1,obj1.call,obj2,obj2.call);

}(),1000);

----------

作为一点点介绍,我所做的Qomo是用这种形式来实现的MuEvent。象Atlas之类的框架,大多也采用类似的方法。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类