作家
登录

在window.setTimeout方法中传送对象

作者: 来源:www.28hudong.com 2013-03-30 03:54:26 阅读 我要评论

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

  推荐阅读

  写了几个类,希望对大家有用。

1.日历 #oContainer { width: 193px; padding: 3px; background-color: menu; border-left: buttonhighlight 1px solid>>>详细阅读


本文标题:在window.setTimeout方法中传送对象

地址:http://www.17bianji.com/kaifa2/JS/31267.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)