最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在window.setTimeout方法中傳送對(duì)象

 更新時(shí)間:2006年12月22日 00:00:00   作者:  
setTimeout方法是js中的延時(shí)方法,很多js的bug,只需要使用該方法延時(shí)一下,就會(huì)自動(dòng)解決了,簡(jiǎn)直就是萬能藥方,也是我比較喜歡使用的最后手段。
其語法是:

window.setTimeout(expr,msec)

    expr是執(zhí)行字符串,在msec毫秒之后,就會(huì)作為js運(yùn)行。我昨天才發(fā)現(xiàn),原來expr也可以是一個(gè)函數(shù),呵呵,用這個(gè)特性,就可以進(jìn)行對(duì)象的傳送了。
    下面的代碼實(shí)現(xiàn)了把函數(shù)foo1中的對(duì)象p,延時(shí)傳送到函數(shù)foo2中的功能。 




現(xiàn)在很多框架其實(shí)都直接一種多投事件(它的實(shí)現(xiàn)原理也不復(fù)雜),一個(gè)多投事件本身,其實(shí)是是一個(gè)標(biāo)準(zhǔn)的函數(shù),但是它一般有下述的方法。

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

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

 

當(dāng)使用第一種方法時(shí),在激活func這個(gè)事件處理函數(shù)時(shí),使用MuEvent的當(dāng)前實(shí)例為this對(duì)象;第二種則使用傳入的instance作為this對(duì)象。

 

因此對(duì)于setTimeout來說,我們傳統(tǒng)的方法要這樣使用它來激活方法:

----------
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);
----------

 

當(dāng)然,你想要寫得COOL一點(diǎn),可以是這樣:

----------

setTimeout(function() {

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

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

作為一點(diǎn)點(diǎn)介紹,我所做的Qomo是用這種形式來實(shí)現(xiàn)的MuEvent。象Atlas之類的框架,大多也采用類似的方法。

相關(guān)文章

最新評(píng)論

崇左市| 班玛县| 绥滨县| 信阳市| 甘谷县| 绍兴市| 太康县| 平和县| 三明市| 永济市| 礼泉县| 信阳市| 荃湾区| 金堂县| 金山区| 栾川县| 尼勒克县| 九江市| 三都| 乐山市| 普兰店市| 靖西县| 镇平县| 海盐县| 梁平县| 同仁县| 山东| 若羌县| 莱州市| 商水县| 宣恩县| 周口市| 山阴县| 巴彦县| 左云县| 闸北区| 阿克陶县| 林芝县| 垫江县| 淳安县| 丰镇市|