在window.setTimeout方法中传送对象

时间: 作者:根张

  

[setTimeout,传送对象]在window.setTimeout方法中传送对象

  其语法是:  
  
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之类的框架,大多也采用类似的方法。

(责任编辑:admin)

推荐图片Related

相关文章Related

查看更多热门新闻


首页 | 特效插件 | 常用代码 | 样式素材 | 脚本代码 | css特效

Copyright © 2017-2018 汇盛国际 版权所有

系统要求:本站自适应各终端浏览器分辨率

请使用Google、Firefox、IE9、百度浏览器登录网站

网站地图 | RSS订阅 | 汇盛国际平台