当前位置:首页 > 范文 > 《JavaScript设计模式与开发实践》读后感精选

《JavaScript设计模式与开发实践》读后感精选

格式:DOC 上传日期:2024-11-18 19:40:23
《JavaScript设计模式与开发实践》读后感精选
时间:2024-11-18 19:40:23   小编:

《JavaScript设计模式与开发实践》是一本深入浅出的书籍,通过实际案例和详细解释,帮助读者理解并应用各种设计模式来提高JavaScript代码的质量和可维护性。阅读后,我对JavaScript设计模式有了更深刻的理解,也学会了如何将其运用到实际项目中,收获颇丰。

JavaScript设计模式与开发实践读后感第一篇

我是这本书的作者,大家可以在这里一起来提高和改进这本书的不足。谢谢 :):):):):):):):):):):):):):):):):):):):):):):):):):)

JavaScript设计模式与开发实践读后感第二篇

读这本书跟我读那些经典的外文技术书籍一个感觉,由浅入深,娓娓道来,非常负责任。所以这是一本非常不错的国产好书,比起其它市面上的javascript设计模式的书籍好多了。

这本书认真的读了一遍,但感觉它非常值得反复仔细研读多遍。不适合初级入门的人,但是对那些入门了以后尚待提高进阶的人来说,绝对是一本难能可贵的书。

JavaScript设计模式与开发实践读后感第三篇

本书结合了Javascript本身的语言特性来讲解设计模式,而且本书的示例中会结合传统面向对象语言(静态类型)以及作为动态语言的Javascript实现同一设计模式的不同实现方式,这点更容易让只有静态语言背景的读者接受,并知道其中的差别。其中,非常好的一点的作者在讲解设计模式的过程中结合实际生成过程中的一些场景,并如何通过在Javascript中使用对应设计模式来解决这类问题。

JavaScript设计模式与开发实践读后感第四篇

原书43页,在原函数之前插入一个函数console.log(1),之后也插入一个函数console.log(3)。为什么输出不是1223而是123呢?原函数不是被调用两次了?

原书43页,在原函数之前插入一个函数console.log(1),之后也插入一个函数console.log(3)。为什么输出不是1223而是123呢?原函数不是被调用两次了?

JavaScript设计模式与开发实践读后感第五篇

第一章讲原型模式,里面介绍了Object.create,但是作者竟然说这是复制一个对象。

最后这个clonePlane应该是一个空对象才对,怎么会输出这些值??~!!!!!

Object.create只是修改了一个对象的原型对象,并不是复制,不知道这些人怎么看的书还一直在这夸。。

[现在的技术文章真的希望做到完美,因为不知道一本书到底会影响到多少人,细节决定成败,反正看这样的书心情突然就会不好]

JavaScript设计模式与开发实践读后感第六篇

之前看过《javascript模式》一书,那是一本颇受好评的书籍。而本书则是在设计模式上对模式一书的进一步扩充。

本书的一大特点就是结合实际,代码较完整,能直接应用到实际开发中,不过从作者的代码书写风格和严谨方面考虑来说,书中有一些错误。

由于有些错误需要重写代码,而一些则是看似“吹毛求疵”的问题,所以就没有去图灵社区提交勘误,但在此一并提出:

迭代器迭代数组的一个案列:

while(!iterator1.isDone()&&!iterator2.isDone()){}这里的while条件意思是只要有一个迭代器迭代到数组的最后一个元素就完成循环了,因此要迭代的数组为[1,2,3]和[1,2,3,4]时,该代码认为他们是相等的,所以应该把"&&"换成"||"。但这样改也是不够的,[1,2,3]和[1,2,3,undefined]仍被认为是相等的。

作者喜欢将for循环的判断语句用来迭代数组,形如:for(;list[i++];)。在本书的案列和大部分情况下是没问题的,但是这个数组中的某个值为假值时,情况可能就不如所愿的。但作者未提及。

发布订阅模式的8.5小结:P114让所有对象都安装发布订阅功能。这里是通过浅复制实现的。所以所有通过该方法实现具有发布订阅功能的对象,实际都共享的是同一个“缓存列表”,因此他们的回调函数也是共享的而不是独自拥有的。(当不同对象订阅了同一个事件该问题就显示出来了)

P202的中介者模式中,作者使用if(((number-0)|0)!==number-0){}来判断用户输入的购买数量是否为正整数。意思是非正整数会进入条件分支。比如1.2,2.1,0(0不是正整数)。但是number为0并不会进入条件分支。从作者的实际意图来说,数量为0并不是“正确的购买数量”,所以在条件判断中应该多加一个表达式来判断。

P133中if(command){//***}条件command是由高阶函数makeCommand返回的一个函数。他始终是一个函数,所以command转为布尔值为真,因此这个判断这么写是错误的。

P268 作者的arrayMap函数是在模仿Array.prototype.map函数。不过需要注意:Array.prototype.map函数接受的回调函数的参数应该是(value,index,context),而作者的代码实际模仿的是jquery的map方法。

除了这些问题,还有一些比较小的问题,或者说不是问题,这里就不讨论了。此外本书缺少对原型链的讨论,因为有些模式可以通过原型链实现。

抛开这些小小的瑕疵,从这本书中能收获比较多的知识,能够让自己的代码写的更加美观。特别是最后几章作者列出的几点原则比较有参考性,而一些与编程无关的举例具有画龙点睛的作用,很有启发。

还剩页未读,是否继续阅读? 继续免费阅读

下载此文档

范文

Powered 2024 版权所有 ICP备666666号

付费下载
付费获得该文章下载权限
限时特价 2.00
原价:¥10.00
在线支付
付费复制
付费后即可复制文档
特价:2.00元 原价:10.00元
微信支付
x
提示:如无需复制,请不要长按屏幕影响阅读体验
付费下载
付费后即可下载文档
特价:2.00元 原价:10.00元
微信支付
x
付费下载
扫一扫微信支付
支付金额:2.00