Node --- EventProxy的原理
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的原理相关推荐
- node.js基本工作原理及流程
概述 Node.js是什么 Node 是一个服务器端 JavaScript 解释器,用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非 ...
- Node.js 究竟是什么?
2019独角兽企业重金招聘Python工程师标准>>> 简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:"Node 究竟是 ...
- 2019 年,19 种方法让自己成为更好的 Node.js 工程师
原文作者:Yoni Goldberg 译者:UC 国际研发 Jothy 写在最前:欢迎你来到"UC国际技术"公众号,我们将为大家提供与客户端.服务端.算法.测试.数据.前端等相关的 ...
- 欢迎进入Node.js世界
官网上(http://www.nodejs.org )给Node下的定义是:"一个搭建在Chrome JavaScript 运行时上的平台,用于构建高速.可伸缩的网络程序.Node.js采用 ...
- node项目架构与优化
为什么要用node 1.前后端耦合太紧密,中间加一层node,还要给前端装一些乱七八糟的东西 java啥的服务环境.还有后台返回接口的时候不管前端需不需要那些接口一起返回,其实只用到1-2 条数据. ...
- 前端进阶必备Node.js,你得了解一下
作为前端开发,工作中肯定离不开 JavaScript ,而 Node.js 是基于 JavaScript 语言和 V8 引擎的 Web 服务器项目,让你可以直接使用 JavaScript 来搭架服务器 ...
- skiplist原理与实现
今天继续介绍分布式系统当中常用的数据结构,今天要介绍的数据结构非常了不起,和之前介绍的布隆过滤器一样,是一个功能强大原理简单的数据结构.并且它的缺点和短板更少,应用更加广泛,比如广泛使用的Redis就 ...
- 首个诞生于长期支持计划的版本Node.js 4.2 “Argon”正式发布
Node.js基金会发布首个诞生于工作组LTS(长期支持)计划的版本Argon. \\ Argon,也就是Node.js 4.2,为我们带来多项改进并进行了重大更新.此次发布的Node.js更新了第5 ...
- 为什么要使用 Node.js
转载地址:https://gold.xitu.io/post/57b54f151532bc0063ebfe31 Node.js 是什么 传统意义上的 JavaScript 运行在浏览器上,这是因为浏览 ...
最新文章
- NA-NP-IE系列实验35:标准ACL
- Mybatis-Plus一个新的报错:数据库表名与SQL的关键字冲突!!!
- C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)
- Python之在函数中使用列表作为默认参数
- HATEOAS的RESTful服务。 记录超媒体API
- 装B指南之使用浏览器播放电影
- 测试常用——linux 基础命令
- JAVA 多线程学习总结
- 使用MacClean在Mac上释放磁盘空间的教程
- [bzoj1566][NOI2009]管道取珠
- html如何导入字体样式表,导入html字体及其样式变体?
- 解秘java中native方法如何实现:手把手带你实现java native方法
- 某度起诉“文库下载神器”,索赔300万
- 阿里巴巴程序员常用的 15 款开发者工具!你知道几个?
- shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
- Java代码分析器(一): JDT入门
- 全面认识Android OS
- spring cloud 快速上手系列 -> 04-网关 Gateway -> 041-空的工程
- postgresql 的 prepare 探索之一
- 战地5服务器性能差警告,《战地5》光线追踪性能为何令人失望?
热门文章
- scrum回顾_3步开好回顾会 | IDCF FDCC认证学员作品
- sql 没有调试 菜单_MySQL递归查询上下级菜单
- 强大而优雅,API 研发管理 EOLINKER 新版正式发布!
- Luogu 3698 [CQOI2017]小Q的棋盘
- vue transition
- JavaWeb总结(十五)
- LightOJ1283 Shelving Books(DP)
- runtime--实现篇02(Category增加属性)
- 【循序渐进学Python】14.数据库的支持
- openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理