您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
JavaScript设计模式与开发实践
字数: 461000
装帧: 平装
出版社: 人民邮电出版社
作者: 曾探
出版日期: 2015-05-01
商品条码: 9787115388889
版次: 1
开本: 16开
页数: 312
出版年份: 2015
定价:
¥69.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
编辑推荐
腾讯前端Alloy Team团队出品,资 深前端架构师曾探力作 全面涵盖专门针对JavaScript的16个设计模式 深入剖析面向对象设计原则、编程技巧及代码重构 设计模式是软件设计中经过了大量实际项目验证的可复用的优 秀解决方案,它有助于程序员写出可复用和可维护性高的程序。许多优 秀的JavaScript开源框架都运用了不少设计模式,越来越多的程序员从设计模式中获益,也许是改善了自己编写的某个软件,也许是更好地理解了面向对象的编程思想。无论如何,系统地学习设计模式都会令你受益匪浅。 本书在尊重《设计模式》原意的同时,针对JavaScript语言特性全面介绍了更适合JavaScript程序员的了16个常用的设计模式,讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计模式中的体现,还分享了面向对象编程技巧和日常开发中的代码重构。本书将教会你如何把经典的设计模式应用到JavaScript语言中,编写出优美高效、结构化和可维护的代码。
内容简介
本书是根据JavaScript语言的特性,全面总结了实际工作中常用的设计模式。全书共分为三个部分,第一部分讲解了JavaScript语言面向对象和函数式编程的知识及其在设计模式方面的作用;第二部分通过一步步完善的代码示例,由浅入深地讲解了16个设计模式;第三部分讲述了面向对象的设计原则及其在设计模式中的体现,以及一些常见的面向对象编程技巧和日常开发中的代码重构。书中所有示例均来自作者长期的开发实践,与实际开发密切相关,适合初、中、高级Web前端开发人员阅读,尤其适合想往架构师晋级的中高级程序员。
作者简介
曾探,2007年毕业于吉林大学软件学院,目前就职于腾讯AlloyTealll前端团队,高级工程师。 曾参与Web QQ、QQ群、O+开发者网站、微云、QQ兴趣部落等大型前端项目的开发。有Java、Pvthon和JavaScript的开发经验,业余作品有HTML5版街头霸王等。 平时喜欢电影和音乐,业余时间是一名健身教练。
目录
第一部分基础知识
第1章面向对象的JavaScript2
1.1动态类型语言和鸭子类型2
1.2多态4
1.2.1一段“多态”的JavaScript代码5
1.2.2对象的多态性5
1.2.3类型检查和多态6
1.2.4使用继承得到多态效果7
1.2.5JavaScript的多态8
1.2.6多态在面向对象程序设计中的作用9
1.2.7设计模式与多态11
1.3封装12
1.3.1封装数据12
1.3.2封装实现12
1.3.3封装类型13
1.3.4封装变化13
1.4原型模式和基于原型继承的JavaScript对象系统14
1.4.1使用克隆的原型模式14
1.4.2克隆是创建对象的手段15
1.4.3体验Io语言15
1.4.4原型编程范型的一些规则17
1.4.5JavaScript中的原型继承18
1.4.6原型继承的未来22
1.4.6小结23
第2章this、call和apply24
2.1this24
2.1.1this的指向24
2.1.2丢失的this27
2.2call和apply29
2.2.1call和apply的区别29
2.2.2call和apply的用途30
第3章闭包和高阶函数35
3.1闭包35
3.1.1变量的作用域35
3.1.2变量的生存周期36
3.1.3闭包的更多作用38
3.1.4闭包和面向对象设计40
3.1.5用闭包实现命令模式41
3.1.6闭包与内存管理43
3.2高阶函数44
3.2.1函数作为参数传递44
3.2.2函数作为返回值输出46
3.2.3高阶函数实现AOP47
3.2.4高阶函数的其他应用49
3.3小结58
第二部分设计模式
第4章单例模式60
4.1实现单例模式60
4.2透明的单例模式61
4.3用代理实现单例模式62
4.4JavaScript中的单例模式63
4.5惰性单例65
4.6通用的惰性单例68
4.7小结70
第5章程序员与算法71
5.1使用策略模式计算奖金72
5.2JavaScript版本的策略模式75
5.3多态在策略模式中的体现76
5.4使用策略模式实现缓动动画76
5.4.1实现动画效果的原理76
5.4.2思路和一些准备工作77
5.4.3让小球运动起来77
5.5更广义的“算法”80
5.6表单校验80
5.6.1表单校验的第一个版本80
5.6.2用策略模式重构表单校验81
5.6.3给某个文本输入框添加多种校验规则83
5.7策略模式的优缺点86
5.8一等函数对象与策略模式86
5.9小结87
第6章代理模式88
6.1第一个例子——小明追MM的故事88
6.2保护代理和虚拟代理91
6.3虚拟代理实现图片预加载91
6.4代理的意义93
6.5代理和本体接口的一致性94
6.6虚拟代理合并HTTP请求95
6.7虚拟代理在惰性加载中的应用97
6.8缓存代理99
6.8.1缓存代理的例子——计算乘积99
6.8.2缓存代理用于ajax异步请求数据100
6.9用高阶函数动态创建代理100
6.10其他代理模式101
6.11小结102
第7章迭代器模式103
7.1jQuery中的迭代器103
7.2实现自己的迭代器104
7.3内部迭代器和外部迭代器104
7.4迭代类数组对象和字面量对象106
7.5倒序迭代器106
7.6中止迭代器107
7.7迭代器模式的应用举例107
7.8小结109
第8章发布—订阅模式110
8.1现实中的发布—订阅模式110
8.2发布—订阅模式的作用110
8.3DOM事件111
8.4自定义事件112
8.5发布—订阅模式的通用实现113
8.6取消订阅的事件115
8.7真实的例子——网站登录115
8.8全局的发布—订阅对象117
8.9模块间通信119
8.10必须先订阅再发布吗120
8.11全局事件的命名冲突121
8.12JavaScript实现发布—订阅模式的便利性124
8.13小结124
第9章命令模式125
9.1命令模式的用途125
9.2命令模式的例子——菜单程序126
9.3JavaScript中的命令模式128
9.4撤销命令130
9.5恢复命令日志132
9.6命令队列133
9.7宏命令134
9.8智能命令与傻瓜命令135
9.9小结136
第10章组合模式137
10.1回顾宏命令138
10.2组合模式的用途139
10.3请求在树中传递的过程139
10.4更强大的宏命令140
10.5抽象类在组合模式中的作用143
10.6透明性带来的安全问题144
10.7组合模式的例子——扫描文件夹145
10.8一些值得注意的地方147
10.9引用父对象148
10.10何时使用组合模式150
10.11小结150
第11章模板方法模式151
11.1模板方法模式的定义和组成151
11.2第一个例子CoffeeorTea151
11.2.1先泡一杯咖啡152
11.2.2沏一壶茶152
11.2.3分离出共同点153
11.2.4创建Coffee子类和Tea子类154
11.3抽象类156
11.3.1抽象类的作用156
11.3.2抽象方法和具体方法156
11.3.3用Java实现CoffeeorTea的例子157
11.3.4JavaScript没有抽象类的缺点和变通158
11.4模板方法模式的使用场景159
11.5钩子方法160
11.6好莱坞原则162
11.7真的需要“继承”吗162
11.8小结164
第12章享元模式165
12.1初识享元模式165
12.2内部状态与外部状态166
12.3享元模式的通用结构167
12.4文件上传的例子167
12.4.1对象爆炸168
12.4.2享元模式重构文件上传170
12.4.3剥离外部状态170
12.4.4工厂进行对象实例化171
12.4.5管理器封装外部状态171
12.5享元模式的适用性173
12.6再谈内部状态和外部状态173
12.6.1没有内部状态的享元173
12.6.2没有外部状态的“享元”174
12.7对象池175
12.7.1对象池实现175
12.7.2通用对象池实现177
12.8小结178
第13章职责链模式179
13.1现实中的职责链模式179
13.2实际开发中的职责链模式180
13.3用职责链模式重构代码181
13.4灵活可拆分的职责链节点183
13.5异步的职责链184
13.6职责链模式的优缺点185
13.7用AOP实现职责链186
13.8用职责链模式获取文件上传对象187
13.9小结188
第14章中介者模式189
14.1现实中的中介者190
14.2中介者模式的例子——泡泡堂游戏191
14.2.1为游戏增加队伍192
14.2.2玩家增多带来的困扰194
14.2.3用中介者模式改造泡泡堂游戏194
14.3中介者模式的例子——购买商品199
14.3.1开始编写代码201
14.3.2对象之间的联系202
14.3.3可能遇到的困难203
14.3.4引入中介者205
14.4小结207
第15章装饰者模式209
15.1给对象动态添加职责210
15.2模拟传统面向对象语言的装饰者模式210
15.3装饰者也是包装器211
15.4回到JavaScript的装饰者212
15.5装饰函数213
15.6用AOP装饰函数215
15.7AOP的应用实例217
15.7.1数据统计上报217
15.7.2统计函数执行时间218
15.7.3用AOP动态改变函数的参数219
15.7.4插件式的表单验证221
15.8装饰者模式和代理模式224
15.9小结224
第16章状态模式225
16.1初识状态模式225
16.1.1第一个例子:电灯程序226
16.1.2状态模式改进电灯程序227
16.2状态模式的定义231
16.3状态模式的通用结构231
16.4缺少抽象类的变通方式232
16.5另一个状态模式示例——文件上传233
……
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网