backbone-1.3.3源码解析-----------Event

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了backbone-1.3.3源码解析-----------Event相关的知识,希望对你有一定的参考价值。

第一次写,写的不对的请指正

backbone.js中的Event实现了自定义事件。自定义事件就是一个对象的键值对,key为事件名,value为一个function数组。在backbone这个对象中有一个内置的对象_events保存着所有的事件

技术分享View Code

 所有Events的方法都是通过eventsApi调用的。

eventsApi = function(iteratee, events, name, callback, opts){...}

分别传入offApi,onceMap,triggerApi作为eventsApi的第一个参数实现对性的off,once,trigger。其中on和listenTo则是通过internalOn方法调用的eventsApi,internalOn方法则是通过第五个参数来区分on和listenTo。internalOn方法的目的就是保护第五个参数,提高安全性。

这里有3个属性this._events={eventName:[]}和this._listeningTo={obj._listenId:{obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0}}和this._listeners={obj._listenId:{obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0}},这三个为map对象。Events这个类最终实现了对这3个对象的操作。

注:Events.listenTo = function(obj, name, callback){...}这个方法调用一次操作了this._events,this._listeningTo和obj._listeners三个属性

以上是关于backbone-1.3.3源码解析-----------Event的主要内容,如果未能解决你的问题,请参考以下文章

Spring 源码解析之HandlerAdapter源码解析

spring系统架构源码解析AutowireCandidateResolver

Netty 源码解析 ——— ChannelConfig 和 Attribute

源码解析:Spring源码解析笔记

Spring 源码解析之ViewResolver源码解析

Spring 源码解析之ViewResolver源码解析