具体描述
《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。
《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库。
作者简介
Stoyan Stefanov:雅虎公司的Web开发人员、Zend认证工程师。他经常会在其博客(www.phpied.com)与一些相关会议中就JavaScript、PHP等Web开发话题发表独到见解。他还独自运营着其他一些网站,其中包括JSPatterns.com—一个用于探讨JavaScript模式的网站。除此之外,Stoyan还是雅虎性能优化工具的项目领导人,同时参与了多个开源项目,例如Firebug和PEAR。
Stoyan是一位“世界公民”,出生并成长于保加利亚,但却是一个加拿大公民,现居住于美国加利福尼亚州的洛杉矶。在短暂的线下时间里,他喜欢弹吉他,与家人一起去圣莫尼卡海滩或待在游泳池边。
目录信息
1.1 回顾历史 1
1.2 变革之风 3
1.3 分析现状 3
1.4 展望未来 4
1.5 面向对象程序设计 5
1.5.1 对象 5
1.5.2 类 6
1.5.3 封装 6
1.5.4 聚合 7
1.5.5 继承 7
1.5.6 多态 8
1.6 OOP概述 8
1.7 训练环境设置 9
1.8 使用Firebug控制台 10
1.9 本章小结 11
第2章 基本数据类型、数组、循环及条件表达式 13
2.1 变量 13
2.2 操作符 15
2.3 基本数据类型 18
2.3.1 查看类型操作符——typeof 19
2.3.2 数字 19
2.3.3 字符串 23
2.3.4 布尔值 26
2.3.5 Undefined与null 32
2.4 基本数据类型综述 34
2.5 数组 35
2.5.1 增加、更新数组元素 36
2.5.2 删除元素 36
2.5.3 数组的数组 37
2.6 条件与循环 38
2.6.1 代码块 38
2.6.2 循环 44
2.7 注释 49
2.8 本章小结 49
2.9 练习题 50
第3章 函数 52
3.1 什么是函数 53
3.1.1 调用函数 53
3.1.2 参数 53
3.2 预定义函数 55
3.2.1 parseInt() 56
3.2.2 parseFloat() 57
3.2.3 isNaN() 58
3.2.4 isFinite() 58
3.2.5 URI的编码与反编码 59
3.2.6 eval() 59
3.2.7 一点惊喜—alert()函数 60
3.3 变量的作用域 60
3.4 函数也是数据 62
3.4.1 匿名函数 63
3.4.2 回调函数 64
3.4.3 回调示例 65
3.4.4 自调函数 66
3.4.5 内部(私有)函数 67
3.4.6 返回函数的函数 68
3.4.7 能重写自己的函数 68
3.5 闭包 70
3.5.1 作用域链 70
3.5.2 词法作用域 71
3.5.3 利用闭包突破作用域链 72
3.5.4 Getter与Setter 78
3.5.5 迭代器 79
3.6 本章小结 80
3.7 练习题 80
第4章 对象 82
4.1 从数组到对象 82
4.1.1 元素、属性、方法 84
4.1.2 哈希表、关联型数组 85
4.1.3 访问对象的属性 85
4.1.4 调用对象的方法 86
4.1.5 修改属性与方法 87
4.1.6 使用this值 88
4.1.7 构造器函数 88
4.1.8 全局对象 90
4.1.9 构造器属性 91
4.1.10 instanceof操作符 92
4.1.11 返回对象的函数 92
4.1.12 传递对象 93
4.1.13 对象比较 94
4.1.14 Firebug控制台中的对象 95
4.2 内建对象 96
4.2.1 Object 97
4.2.2 Array 98
4.2.3 Function 102
4.2.4 Boolean 107
4.2.5 Number 109
4.2.6 String 110
4.2.7 Math 115
4.2.8 Date 117
4.2.9 RegExp 121
4.2.10 Error对象 127
4.3 本章小结 131
4.4 练习题 132
第5章 原型 135
5.1 原型属性 135
5.1.1 利用原型添加方法与属性 136
5.1.2 使用原型的方法与属性 137
5.1.3 自身属性与原型属性 138
5.1.4 利用自身属性重写原型属性 139
5.1.5 isPrototypeOf()方法 143
5.1.6 神秘的_proto_链接 143
5.2 扩展内建对象 145
5.2.1 关于扩展内建对象的讨论 146
5.2.2 一些原型陷阱 147
5.3 本章小结 150
5.4 练习题 150
第6章 继承 152
6.1 原型链 152
6.1.1 原型链示例 153
6.1.2 将共享属性迁移到原型中去 156
6.2 只继承于原型 158
6.3 uber—子对象访问父对象的方式 161
6.4 将继承部分封装成函数 163
6.5 属性拷贝 163
6.6 小心处理引用拷贝 165
6.7 对象之间的继承 167
6.8 深拷贝 169
6.9 object() 171
6.10 原型继承与属性拷贝的混合应用 172
6.11 多重继承 173
6.12 寄生式继承 175
6.13 构造器借用 176
6.14 本章小结 179
6.15 案例学习:图形绘制 183
6.15.1 分析 183
6.15.2 实现 184
6.15.3 测试 188
6.16 练习题 189
第7章 浏览器环境 190
7.1 在HTML页面中引入JavaScript代码 190
7.2 概述:BOM与DOM 191
7.3 BOM 192
7.3.1 window对象再探 192
7.3.2 window.navigator 193
7.3.3 Firebug的备忘功能 193
7.3.4 window.location 194
7.3.5 window.history 195
7.3.6 window.frames 196
7.3.7 window.screen 197
7.3.8 window.open()/close() 198
7.3.9 window.moveTo()、window.resizeTo() 199
7.3.10 window.alert()、window.prompt()、window.confirm() 199
7.3.11 window.setTimeout()、window.setInterval() 201
7.3.12 window.document 202
7.4 DOM 202
7.4.1 Core DOM与HTML DOM 204
7.4.2 DOM节点的访问 206
7.4.3 DOM节点的修改 215
7.4.4 新建节点 218
7.4.5 移除节点 221
7.4.6 只适用于HTML的DOM对象 223
7.5 事件 227
7.5.1 内联HTML属性法 227
7.5.2 元素属性法 227
7.5.3 DOM的事件监听器 228
7.5.4 捕捉法与冒泡法 229
7.5.5 阻断传播 231
7.5.6 防止默认行为 233
7.5.7 跨浏览器事件监听器 233
7.5.8 事件类型 235
7.6 XMLHttpRequest对象 236
7.6.1 发送请求 236
7.6.2 处理响应 237
7.6.3 在早于7的IE版本中创建XMLHttpRequest对象 238
7.6.4 A代表异步 239
7.6.5 X代表XML 240
7.6.6 实例示范 240
7.7 本章小结 242
7.8 练习题 244
第8章 编程模式与设计模式 247
8.1 编程模式 248
8.1.1 行为隔离 248
8.1.2 命名空间 250
8.1.3 初始化分支 253
8.1.4 延迟定义 254
8.1.5 配置对象 255
8.1.6 私有属性和方法 257
8.1.7 特权函数 258
8.1.8 私有函数的公有化 258
8.1.9 自执行函数 259
8.1.10 链式调用 260
8.1.11 JSON 261
8.2 设计模式 262
8.2.1 单件模式1 263
8.2.2 单件模式2 263
8.2.3 工厂模式 264
8.2.4 装饰器模式 266
8.2.5 观察者模式 269
8.3 本章小结 272
附录A 保留字 273
附录B 内建函数 276
附录C 内建对象 279
附录D 正则表达式 305
· · · · · · (收起)
读后感
比犀牛书(《权威指南》)更适合作为入门书: 不像犀牛书那么学术,读起来比较轻松; 闭包、原型、继承这本书讲解地很到位,犀牛书里则关注得不多。 附录简明扼要,比犀牛书方便许多。 作者的另一本书《javascript patterns》跟这本衔接的很好,比这本更深入一些,可以作为进...
本书的原名是《Object-Oriented JavaScript》,中文译名为《JavaScript面向对象编程指南》,我觉得不是很贴切,结合书中的内容,可能《面向对象的JavaScript教程/指南》或《JavaScript基础教程/指南》更合适一些,因为本书的重点其实并不是“面向对象”(虽然有几章重点在于面...
2012-11-11 Robbie (Decheng) Fan 这几天在读凌大侠的《面向对象的JavaScript编程》(又名《JavaScript面向对象编程指南》)。 面向对象编程,我在大一就开始学习了。在分支、循环、函数调用、变量、结构体、指针、函数指针以及malloc这些基石之上,从封装到继承到多态,从...
【2015-01-01】图书馆借来看了3天,挺不错的,特别是对一些细节、概念的描述,起码对于我这个半吊子算是解惑了,特别是函数那块,挺受用的,不过有些地方的代码块最好是用浏览器来练习,书上的执行效果都是firebug上的,而firebug上的又和浏览器执行起来的不一样(感谢书上贴黄...
用户评价
最近在学习前端开发,JavaScript是必不可少的基础。虽然市面上关于JavaScript的书籍不少,但很多都侧重于语法和基础API的介绍,对于更深层次的编程思想,例如面向对象,则往往一带而过。我深知,要想在前端领域走得更远,光有“会用”是不够的,更需要“精通”。“JavaScript面向对象编程指南”这个书名,恰好满足了我对这方面知识的渴望。我尤其关注的是书中关于“设计模式”的讲解。我知道很多经典的面向对象设计模式,例如工厂模式、单例模式、观察者模式等,在实际开发中有着广泛的应用,能够极大地提升代码的可读性和可维护性。我希望这本书能够结合JavaScript的特性,详细介绍这些设计模式,并提供实用的代码示例,让我能够将这些模式融会贯通,应用到我的项目中。同时,我也期待书中能有一些关于如何组织大型JavaScript项目、如何进行代码重构的建议,这对我目前正在进行的一些小型项目来说,非常有价值。
对于我这种长期活跃在JavaScript开发前线的开发者来说,技术更新迭代的速度总是让我感到一丝焦虑。虽然我早已熟练掌握了JavaScript的各种语法和常用API,但总觉得在一些更深层次的编程思想上,自己还有提升的空间。特别是关于“面向对象编程”这部分,虽然在实际开发中多多少少会用到一些相关的概念,但总感觉没有形成系统性的理解。“JavaScript面向对象编程指南”这个书名,正好触及了我内心深处的需求。我迫切地希望这本书能够为我提供一个清晰、系统化的学习路径,让我能够深入理解JavaScript中的面向对象精髓。我特别想了解,书中对于ES6 classes的讲解是否足够深入,它会不会探讨classes背后更底层的原型机制?以及,书中是否会包含一些高级的面向对象设计模式,或者一些关于如何利用面向对象思想来优化JavaScript性能的技巧?我期待这本书能够给我带来一些“拨云见日”的启发,让我能够站在更高的角度去审视和编写JavaScript代码。
作为一名有几年JavaScript开发经验的开发者,我一直在思考如何让自己的代码写得更“高级”,更有条理。坦白说,我过去写JavaScript代码,更多的是一种“脚本式”的思维,虽然能够实现功能,但在面对大型项目或者多人协作时,就显得力不从心,维护起来也特别费劲。所以,“JavaScript面向对象编程指南”这本书,从书名上看,就直击了我目前最想解决的问题。我特别想了解,在JavaScript这个相对灵活的语言中,如何才能真正地“面向对象”地去思考和设计。书中会不会详细讲解原型链、闭包在面向对象中的作用?它会不会提供一些关于如何构建可复用组件、如何实现模块化开发的具体方法?我希望这本书不是简单地罗列概念,而是能通过大量的实际案例,展示面向对象编程在JavaScript中的具体落地,让我能够真正理解“封装”、“继承”和“多态”这些概念的实际意义,并且能够运用它们来写出更加健壮、更易于扩展的代码。
这本书的封面设计就很吸引我,简约又不失专业感,封面上“JavaScript面向对象编程指南”这几个字,直接点明了主题,也让我这个对JavaScript面向对象概念一直有些模糊的读者眼前一亮。我一直觉得,掌握了面向对象编程,才能更深入地理解和运用JavaScript,写出更清晰、更易于维护的代码。虽然我平时也会接触JavaScript,但总感觉在一些更复杂的项目面前,我的代码结构不够优雅,可扩展性也差强人意。这本书的出现,仿佛为我指明了方向。我期待它能够深入浅出地讲解面向对象的核心概念,比如封装、继承、多态,以及如何在JavaScript中实现这些概念。特别是JavaScript作为一门动态语言,在实现面向对象时有着一些独特的机制,我希望这本书能够详细阐述这些机制,并提供丰富的实战案例。我希望作者能够像一位经验丰富的导师,用通俗易懂的语言,一步一步引导我,让我彻底理解面向对象编程的精髓,告别“写完就忘”的尴尬。
我是一名正在学习编程的大学生,之前接触过一些其他的面向对象语言,比如Java,对面向对象编程有了一些初步的认识。但是,在学习JavaScript的时候,我发现它在实现面向对象方面,似乎和Java有一些不同,而且网上的一些资料也比较零散,理解起来总是断断续续的。“JavaScript面向对象编程指南”这本书,听起来就非常适合我这样的初学者。我希望它能够用清晰易懂的语言,对比其他语言的面向对象实现方式,来讲解JavaScript特有的面向对象机制。比如,它会不会详细解释JavaScript中的类(class)关键字,以及它背后的原型继承机制?我期待书中能够提供一些循序渐进的练习,让我能够边学边练,逐步掌握面向对象编程的技巧。更重要的是,我希望这本书能够帮助我建立起一种“面向对象”的思维方式,而不是仅仅停留在语法层面,能够让我写出结构清晰、逻辑严谨的JavaScript代码。
适合入门的,没啥新内容
查漏补缺
感谢 @owlman 提供的书稿。关于JS的许多trick都在里面有谈及,在我学习js各种库如jquery的时候,和写自己的插件时,派上了很大的用场。JS真的是一门很神奇的语言,网页上许许多多有用的、动态绚丽的效果绝大多数都需要用到JS。本书简繁适中,适合新手入门及熟悉者回顾概念,较难的部分需要结合实际经验理解体会。
好书
教你怎么用js特性充分发挥面向对象