我是这本书的作者

dean 评论 JavaScript设计模式与开发实践 5 2015-05-21 13:25:37
Think²º¹¹
Think²º¹¹ 2015-05-31 14:33:29

看完了,正在看第二遍,我想说,写的真是太过瘾了!

GeniusLc
GeniusLc 2015-06-03 14:02:24

刚下单,期待:)

不在沉默
不在沉默 (给我一段小清新) 2015-06-04 15:14:21

刚下单,看完来评论

白叔桑的忧郁
白叔桑的忧郁 (here we go~) 2015-06-11 23:16:29

写的很好啊,刚刚看了一半,收获颇丰。加深了对js的理解,话说你好像在网上不够活跃啊,来个博客什么的瞧瞧呗?

不在沉默
不在沉默 (给我一段小清新) 2015-06-13 17:04:44

第40页 img对象用于进行数据上报是什么hack的用法?

windsolider
windsolider 2015-07-29 15:36:03

看过很多版本的写javascript设计模式的书,相对比而言,你这本是写的最深入浅出。书中案例的讲解使人更形象的理解了设计模式在javascript编码的过程中如何使用。读了一半,受益匪浅,难得的适合精读的一本书,谢谢!

dean
dean 2015-08-14 17:59:59

@不在沉默,img对象上报是很正常的做法,不是什么hack。

dean
dean 2015-08-14 18:00:29

谢谢各位的肯定,得到肯定比书多卖几本感觉好多了。:)

dean
dean 2015-08-14 18:01:08

@白叔桑的忧郁 我们团队的blog是alloyteam.com,上面也有少量我的文章。

gopl0.12
gopl0.12 2015-12-18 13:13:08

烦问作者有无技术博客之类的,看完你的书感觉不过瘾。。。

别看我,我害羞
别看我,我害羞 2016-04-04 17:17:49

感谢作者,看到52页,可以把高深的概念讲得浅显易懂,配合的代码很简短很容易阅读,中国人的思维模式读起来特别好理解。。。

AchillesJ
AchillesJ 2016-09-19 00:06:52

单例模式那一章对jQuery的one方法的使用好像有点问题
http://api.jquery.com/one/#one-events-data-handler
$('selector').one()表示的是只执行一次handler(事件触发后即移除),而不是只绑定一次

樱花
樱花 2016-10-13 18:51:30

第八章发布订阅模式 p114页 installEvent函数有点问题
原代码:
var installEvent = function (obj) {
for (var i in event) {
obj[i] = event[i];
}
};

应该改成这样:
var installEvent = function (obj) {
for (var i in event) {
if (typeof i === 'function') {
obj[i] = event[i];
}
}
obj.clientList = []; //引用类型应该创建一个单独的实例
}

Laserw9
Laserw9 2016-11-03 22:05:09

作者您好,本书第一版 P121 的 “8.11全局事件的命名冲突” 中第一行单词写错为“clinetList”,应该是“clientList”

Laserw9
Laserw9 2016-11-03 22:09:34

楼上 樱花 提到的那个也是我疑惑的地方,原书的写法会让所有的对象公用同一个数组内存

风中之尘
风中之尘 (Anyway the wind blow) 2017-06-10 21:19:53

第一章 1.4.5 JavaScript 中的原型继承 22页
·但 Object.prototype 的原型是 null,说明这时候...·
------------------------------------
这里的应该是个空对象而不是 null,前文也是描述为空对象
另外,在 Chrome 中打印出 Object.prototype ,也是空对象

碎月绵雪
碎月绵雪 2017-11-18 10:03:43

第三章 『高阶函数实现 AOP 』的部分,我认为不需要在返回的函数里面再返回原来的函数了,我的代码是这样的:
``` js
Function.prototype.before = function(beforefn) {
var _self = this;
return function() {
beforefn.apply(this, arguments);
_self.apply(this, arguments);
}
}

Function.prototype.after = function(afterfn) {
var _self = this;
return function() {
_self.apply(this, arguments);
afterfn.apply(this, arguments);
}
}

var func = function() {
console.log(2);
}

func = func.before(function() {
console.log(1);
}).after(function() {
console.log(3);
})
func();
```

棋声惊昼眠°
棋声惊昼眠° (你在我和世界之间。) 2018-04-09 16:06:24
第三章 『高阶函数实现 AOP 』的部分,我认为不需要在返回的函数里面再返回原来的函数了,我... 第三章 『高阶函数实现 AOP 』的部分,我认为不需要在返回的函数里面再返回原来的函数了,我的代码是这样的: ``` js Function.prototype.before = function(beforefn) { var _self = this; return function() { beforefn.apply(this, arguments); _self.apply(this, arguments); } } Function.prototype.after = function(afterfn) { var _self = this; return function() { _self.apply(this, arguments); afterfn.apply(this, arguments); } } var func = function() { console.log(2); } func = func.before(function() { console.log(1); }).after(function() { console.log(3); }) func(); ``` ... 碎月绵雪

你这样的写法,看起来顺利执行了beforefn,func,afterfn的原因是,func这个函数本身没有返回值。如果func是这样:
var func = function () {
console.log(2);
return 2;
}

就会发现,你的写法,最终会丢失func的返回值。