惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - 如是如是

将博客搬至CSDN 钱钟书夫人杨绛:《一百岁感言》 用到了反射,还不错。可以取到动态创建类的值 JounceTabRegion Jounce Blendable RestShart Post 方式传递poco给Web api Using ASP.NET Web API with ASP.NET Web Forms How to Migrate from WCF Web API to ASP.NET Web API ASP.NET Web API MVC-REST-SilverLight 之 架构 MVC-REST-SilverLight 之 RestExample.Model.Silverlight\Customer.cs - 如是如是 MVC-REST-SilverLight 之MainPage.xaml.cs MVC-REST-SilverLight 之 ViewModels\MainViewModel.cs - 如是如是 MVC-REST-SilverLight 之Api\CustomerApi.cs - 如是如是 - 博客园 MVC-REST-SilverLight 之 Global.asax.cs MVC-REST-SilverLight 之 HttpConfiguration MVC-REST-SilverLight 之 MapServiceRoute MEF Export 和 Import 委托 设计模式-访问者
DOM无关事件
如是如是 · 2013-03-12 · via 博客园 - 如是如是

C#中,事件和委托是模块解耦的手段。在javascript中呢?

一个采用发布/订阅模式实现事件驱动的库。

发布/订阅模式是一种消息模式,

参与着:发布者、订阅者。

var PubSub={

    subscribe:function(ev,callback){

        //创建 _callback 对象,除非她已经存在

        var call=this._callback||(this._callback={});

        //针对给定的事件Key创建一个数组,除非这个数组已经存在

        //然后将回调函数追加到这个数组中

        (this._callback[ev]||(this._callback[ev]=[])).push(callback);

        returnthis;

    },

    publish:function(){

        //arguments对象转换为真正的数组

        var args=Array.prototype.slice.call(arguments,0);

        //拿出第1个参数,即事件的名称

        var ev=args.shift();

        //如果不存在 _callback对象,则返回

        //或者如果不包含给定事件对应的数组

        var list,calls,i,l;

        if(!(calls=this._callback)) returnthis;

        if(!(list=this._callback[ev])) returnthis;

        //触发回调

        for(i=o,l=list.length;i<l;i++)

            list[i].apply(this,args);

        returnthis;

    }

};

//使用方法,事件名称可以采用命名空间的方式来管理,例如使用冒号(:)分隔符

PubSub.subscribe("user:create",function(){/* ... */});

PubSub.publish("user:create");

//这时候PubSub是全局变量,可以应用于全局事件。我们也可以很容易的将其应用于局部事件。

//如下

var Asset={};

//添加PubSub

jQuery.extend(Asset,PubSub);

//现在就可以用publish/subcribe函数了

Asset.subscribe("create",function(){/* ... */});