EventProxy来自于Backbone的事件模块,Backbone的事件模块是Model、View模块的基础功能,在前端有广泛的使用。它在每个非all事件触发时都会触发一次all事件,相关代码如下:

// Trigger an event, firing all bound callbacks. Callbacks are passed the
// same arguments as 'trigger' is, apart from the event name.
// Listening for '"all"' passes the true event name as the first argument
trigger : function(eventName) {var list, calls, ev, callback, args;var both = 2;if (!(calls = this._callbacks)) return this;while (both--) {ev = both ? eventName : 'all';if ( if = calls[ev]) {for ( var i = 0, l = list.length; i < l; i++) {if (!(callback = list[i])) {list.splice(i ,1); i--; l--;} else {args = both ? Array.prototype.slice.call(arguments, 1) : arguments;callback[0].apply(callback[1] || this, args);}}}}return this;}

详情参考《深入浅出Node》P79

Node --- EventProxy的原理相关推荐

  1. node.js基本工作原理及流程

    概述 Node.js是什么 Node 是一个服务器端 JavaScript 解释器,用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非 ...

  2. Node.js 究竟是什么?

    2019独角兽企业重金招聘Python工程师标准>>> 简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:"Node 究竟是 ...

  3. 2019 年,19 种方法让自己成为更好的 Node.js 工程师

    原文作者:Yoni Goldberg 译者:UC 国际研发 Jothy 写在最前:欢迎你来到"UC国际技术"公众号,我们将为大家提供与客户端.服务端.算法.测试.数据.前端等相关的 ...

  4. 欢迎进入Node.js世界

    官网上(http://www.nodejs.org )给Node下的定义是:"一个搭建在Chrome JavaScript 运行时上的平台,用于构建高速.可伸缩的网络程序.Node.js采用 ...

  5. node项目架构与优化

    为什么要用node 1.前后端耦合太紧密,中间加一层node,还要给前端装一些乱七八糟的东西  java啥的服务环境.还有后台返回接口的时候不管前端需不需要那些接口一起返回,其实只用到1-2 条数据. ...

  6. 前端进阶必备Node.js,你得了解一下

    作为前端开发,工作中肯定离不开 JavaScript ,而 Node.js 是基于 JavaScript 语言和 V8 引擎的 Web 服务器项目,让你可以直接使用 JavaScript 来搭架服务器 ...

  7. skiplist原理与实现

    今天继续介绍分布式系统当中常用的数据结构,今天要介绍的数据结构非常了不起,和之前介绍的布隆过滤器一样,是一个功能强大原理简单的数据结构.并且它的缺点和短板更少,应用更加广泛,比如广泛使用的Redis就 ...

  8. 首个诞生于长期支持计划的版本Node.js 4.2 “Argon”正式发布

    Node.js基金会发布首个诞生于工作组LTS(长期支持)计划的版本Argon. \\ Argon,也就是Node.js 4.2,为我们带来多项改进并进行了重大更新.此次发布的Node.js更新了第5 ...

  9. 为什么要使用 Node.js

    转载地址:https://gold.xitu.io/post/57b54f151532bc0063ebfe31 Node.js 是什么 传统意义上的 JavaScript 运行在浏览器上,这是因为浏览 ...

最新文章

  1. NA-NP-IE系列实验35:标准ACL
  2. Mybatis-Plus一个新的报错:数据库表名与SQL的关键字冲突!!!
  3. C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)
  4. Python之在函数中使用列表作为默认参数
  5. HATEOAS的RESTful服务。 记录超媒体API
  6. 装B指南之使用浏览器播放电影
  7. 测试常用——linux 基础命令
  8. JAVA 多线程学习总结
  9. 使用MacClean在Mac上释放磁盘空间的教程
  10. [bzoj1566][NOI2009]管道取珠
  11. html如何导入字体样式表,导入html字体及其样式变体?
  12. 解秘java中native方法如何实现:手把手带你实现java native方法
  13. 某度起诉“文库下载神器”,索赔300万
  14. 阿里巴巴程序员常用的 15 款开发者工具!你知道几个?
  15. shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
  16. Java代码分析器(一): JDT入门
  17. 全面认识Android OS
  18. spring cloud 快速上手系列 -> 04-网关 Gateway -> 041-空的工程
  19. postgresql 的 prepare 探索之一
  20. 战地5服务器性能差警告,《战地5》光线追踪性能为何令人失望?

热门文章

  1. scrum回顾_3步开好回顾会 | IDCF FDCC认证学员作品
  2. sql 没有调试 菜单_MySQL递归查询上下级菜单
  3. 强大而优雅,API 研发管理 EOLINKER 新版正式发布!
  4. Luogu 3698 [CQOI2017]小Q的棋盘
  5. vue transition
  6. JavaWeb总结(十五)
  7. LightOJ1283 Shelving Books(DP)
  8. runtime--实现篇02(Category增加属性)
  9. 【循序渐进学Python】14.数据库的支持
  10. openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理