欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

在window.setTimeout方法中传送对象

时间:2022-05-19 08:56:13|栏目:JavaScript代码|点击:
其语法是:

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

上一篇:javascript冒泡排序小结

栏    目:JavaScript代码

下一篇:flexslider.js实现移动端轮播

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

本文地址:http://www.codeinn.net/misctech/202253.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有