国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

在window.setTimeout方法中傳送對象

2019-11-21 02:25:11
字體:
供稿:網(wǎng)友
其語法是:

window.setTimeout(expr,msec)

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

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]



[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]

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

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

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

 

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

 

因此對于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);
----------

 

當然,你想要寫得COOL一點,可以是這樣:

----------

setTimeout(function() {

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

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

作為一點點介紹,我所做的Qomo是用這種形式來實現(xiàn)的MuEvent。象Atlas之類的框架,大多也采用類似的方法。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 卓尼县| 灯塔市| 马龙县| 会理县| 渭源县| 遵化市| 通海县| 太康县| 大连市| 迭部县| 伊通| 罗城| 建湖县| 旌德县| 尉犁县| 漳平市| 洪江市| 溧水县| 沙湾县| 万州区| 金华市| 恭城| 景德镇市| 化德县| 吴堡县| 富阳市| 呼图壁县| 东方市| 保德县| 耒阳市| 宝山区| 平乐县| 吴忠市| 葫芦岛市| 柘荣县| 孝感市| 汝州市| 威海市| 奉贤区| 泸州市| 中阳县|