第二章订阅和发布
publish: function () {
...
// 如果不存在_callbacks 方法返回
if(!(this._calls = this._callbacks )) return this;
//如果不包含事件对应的数组
if(!(this._calls = this._callbacks[ev])) return this;
...
}
这个地方我觉得有个很严重的错误
因为在上部分subscribe (不在这里贴可在书中查看)方法中 _callbacks 方法不存在,在会被指定为{} 。
所以subscribe 这个方法哪怕只执行一次, 第一个if 永远都是返回true (比如subscribe 中根本没声明过的 “no.func”方法,subscribe 只要之前执行subscribe("yes.func",function() { 这里是yes方法 })过,publish("no.func") 执行时都不会被正确的return 出来)
第二个if 也有问题 因为上部分的subscribe 方法中 _callbacks[ev] 永远都被赋值成一个数组,在callback 方法未传入的时候。
数组会被推入一个undefined,
那么到 !(this._calls = this._callbacks[ev])这里 相当于 !(this._calls = [undefined]) 也相当于 !([]) 这个判断也是只要sub方法执行过,永远为false 了
完全打不到判断的预期啊?
订阅发布这段是代码的作者的原本想法到底是啥?
对“订阅发布这段是代码的作者的原本想法到底是啥?”的回应
《基于MVC的JavaScript Web富应用开发》热门书评
-
作者简直疯了
9有用 6无用 乱军中取尔三观 2012-10-05
Yabble是一个两年没维护,完全无文档的东西。一个废弃的项目,竟然被写进教材。你们知道jars/js.jar是什么吗?是Rhino!Rhino在里面干什么?用来运行lib/yabbler.js。lib/yabbler.js用来干什么?是一个自动wrapper。如果我想手动wrap,应该用什么格式?...
-
你看了那么多书,用了那么多框架,你就会做app了么!
9有用 4无用 mrsun3000 2011-11-21
首个以介绍如何从零创建客户端JS MVC框架的作品,换句普通人的说法,这本书是教你怎么工作的。只要有了犀牛和猫头鹰,你不再需要其他的JS书,平趟各种前端项目,甚至当你想跨界去搞搞cocoa的时候,也会想起他的好。一口气剧透一下~这本书是这么组织的,编写自己的class,event,model, co...
-
这篇评论不是写本书的而是针对作者的!
7有用 0无用 BluePool 2013-12-04
本书作者Alex MacCaw花了10个月的时间做世界环游,途经非洲,东南亚,澳洲,中南美洲里的17个国家和地区。这期间:出席在香港,日本,美国和伦敦举行的会议;还写了这本《JavaScript Web Applications》;另外写了一本关于CoffeeScript的书;写了开源库,例如Spi...
-
读书笔记
6有用 1无用 机械唯物主义 2012-02-26
这几天抽空把这本书看完了, 整理一下学到的东西.在我看来, 整本书主要内容就是讲如何抽象js前端开发, 让代码变得更清晰. 具体采用的手法是在js里面实现class, MVC, module等抽象.整理整理一下我觉得对我来说重要的知识点:- context switch. js...
-
太好的书了
6有用 1无用 mickey 2011-07-05
1:揭开MVC的神秘面纱,教你如何设计合理的架构以及处理应用内部模块之间的依赖2:介绍模板引擎和数据绑定3:讲解远程数据加载、第二代Ajax以及跨域请求4:利用WebSockets和Node构建实时应用5:拖拽上传文件以及上传进度提示6:讲解主流的库和框架,包括jQuery、JavaScriptMV...
书名: 基于MVC的JavaScript Web富应用开发
作者: 麦卡劳
出版社: 电子工业出版社
原作名: JavaScript Web Applications
译者: 张散集 | 李晶
出版年: 2012-5
页数: 282
定价: 59.00元
装帧: 平装
丛书: 博文视点O'reilly系列
ISBN: 9787121109560