JavaScript面向对象编程指南

出版社:人民邮电出版社
出版日期:2013-3
ISBN:9787115309044
作者:斯托扬
页数:310页

作者简介

《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。
《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库。

书籍目录

第1章 引言
1
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面向对象编程指南》编辑推荐:JavaScript是一种具有高度表达能力的、基于原型特性的、非常灵活的面向对象编程语言。《JavaScript面向对象编程指南》中值得一提的是,《JavaScript面向对象编程指南》作者是JavaScript设计模式方面的专家,他在第8章中介绍了几种常用的JavaScript编程模式,这也为他后续的另一本重要著作《JavaScript Patterns》奠定了基础。《JavaScript面向对象编程指南》全面地覆盖了JavaScript语言的OO特性,同时兼顾基础知识,对初学者来说,是难得的JavaScript佳作。阅读《JavaScript面向对象编程指南》不需要读者具备任何的JavaScript基础知识及项目经验,通过学习《JavaScript面向对象编程指南》,读者将会在面试有关JavaScript程序设计的职位时游刃有余。

内容概要

Stoyan Stefanov:雅虎公司的Web开发人员、Zend认证工程师。他经常会在其博客(www.phpied.com)与一些相关会议中就JavaScript、PHP等Web开发话题发表独到见解。他还独自运营着其他一些网站,其中包括JSPatterns.com—一个用于探讨JavaScript模式的网站。除此之外,Stoyan还是雅虎性能优化工具的项目领导人,同时参与了多个开源项目,例如Firebug和PEAR。
Stoyan是一位“世界公民”,出生并成长于保加利亚,但却是一个加拿大公民,现居住于美国加利福尼亚州的洛杉矶。在短暂的线下时间里,他喜欢弹吉他,与家人一起去圣莫尼卡海滩或待在游泳池边。

章节摘录

版权页:   插图:   7.6 XMLHttpRequest对象 XMLHttpRequest()是一个用构建HTTP请求的JavaScript对象(即构造器)。从历史上来说,XMLHttpRequest(简称XHR)最初在IE浏览器中是以ActiveX对象的形式被引入的。但正式实现该对象则是始于IE7,那时候也只是该浏览器中的一个本地对象,后来逐渐被Firefox、Safari、Opera等其他浏览器所接受,并形成了一种通用的跨浏览器实现,这就是所谓的AJAX应用。这种应用模式可以使我们无须每次都通过刷新整个页面来获取新内容。我们可以利用JavaScript将相关的HTTP请求发送给服务器端,然后根据服务器端的响应来局部更新页面。总而言之,通过这种方式构建出来的页面在许多响应方式上会更类似于桌面应用。 实际上,AJAX就是在JavaScript和XML之间所建立的一种异步联系。之所以是异步,是因为我们的代码在发送HTTP请求之后,不需要特地停下来等待服务器响应,可以继续执行其他任务,待相关信息到达时自然会收到通知(通常以事件的形式出现)。 JavaScript——它的作用很明显,XHR对象就是用JavaScript来创建的。 至于用XML,则是因为开发者最初设计这种HTTP请求就是用来获取XML文档,并用其中的数据来更新页面的。尽管如今这种做法已经不太常见了,但是这种方式也可以用来获取纯文本格式的数据,这能使得一些JSON格式的数据,或简单的HTML元素更容易被插入相关的页面中。 关于XMLHttpRequest对象的用法,主要可以分为两个有效步骤: 发送请求——在这一步骤中,我们需要完成XMLHttpRequest对象的构建,并为其设置事件监听器。 处理响应——在这一步骤中,事件监听器会在服务器的响应信息到达时发出通知,然后代码就会忙于从中提取有用的信息。


 JavaScript面向对象编程指南下载 更多精彩书评



发布书评

 
 


精彩书评 (总计9条)

  •     【2015-01-01】图书馆借来看了3天,挺不错的,特别是对一些细节、概念的描述,起码对于我这个半吊子算是解惑了,特别是函数那块,挺受用的,不过有些地方的代码块最好是用浏览器来练习,书上的执行效果都是firebug上的,而firebug上的又和浏览器执行起来的不一样(感谢书上贴黄色便签笔记的家伙,图书馆的书嘛~嘿嘿~),所以最好在实际浏览器上测下,然后要留意下代码块里有错误的地方,比如sum()写成了sun()之类的~~ 值得看,虽然说不要基础,但是多多少少要有些知识储备来看的呢。【2015-04-16】惨- -,没读完,然后书还给图书馆了,直接买了第二版的~~
  •     如今,招聘Web开发者的职位要求中,具备JavaScript的知识已经是决定性的因素了。过去,我们只是偶尔在网 页中简单地嵌入几行JavaScript代码,而现在已经拥有了各种程序库及扩展性应用构架,以用于各种“胖客户端” 以及AJAX类型的Web应用程序。 本书着重于介绍JavaScript在面向对象方面的特性,以展示如何构建健壮的、可维护的、功能强大的应用程序及程序库。阅读完本书,读者将会在面试有关JavaScript的职位时游刃有余,甚至会凭借某些连面试官都不知道的知识给他们留下深刻的印象。 如果想让自己的JavaScript开发能力提升到一个新的水平,这本书将是不错的选择。本书并不要求读者在JavaScript方面有任何基础,我们将会从零开始打下深厚的JavaScript语言功底。即便读者对JavaScript代码已经有了一定程度的了解,恐怕也会对该语言无所不能的魅力感到惊讶。
  •     2012-11-11Robbie (Decheng) Fan这几天在读凌大侠的《面向对象的JavaScript编程》(又名《JavaScript面向对象编程指南》)。面向对象编程,我在大一就开始学习了。在分支、循环、函数调用、变量、结构体、指针、函数指针以及malloc这些基石之上,从封装到继承到多态,从组合到接口到设计模式,从map到filter到reduce,处处彰显着程序设计的魅力。另一方面,JavaScript也是我在大一学习的一门编程语言。之前在高三时候在老师的悉心教导之下学习了HTML(这一定要归功于我的母校上海交通大学附属中学),所以,虽然JavaScript在大学里是没有这门课的,我也通过自学把这门语言学了下来。但是,JavaScript始终在我看来是面向过程的编程语言。少数情况下,我会用它的this语法来创建一些对象,但即便如此,这些对象还是被当作结构体使用。prototype可以用来为对象添加成员函数,但是,一个挥之不去的问题是,如何实现继承,关键是优雅地实现继承。如果只是接口,那我想通过在结构体中包含多个函数指针(或者,在JavaScript中是函数引用),就可以实现这一功能。这样能实现多态。继承就算不能直接实现,用组合来代替也未尝不可。但是,程序员不是一个人在说话,也不是一个人在编程。他需要和别的程序员交流,因此同样用JavaScript,他的程序中的面向对象思路也要和别的程序员能有一种较为标准的方式进行沟通,所以,最好有一种业界公认的方式,而在我看了这本书的标题之后,感觉它则恰恰很有可能提供了这种方式。这样,它的价值就体现出来了。初看这本书的名字,怀疑作者会不会直入主题,假定读者已经熟悉JavaScript而直接讲如何用它作面向对象编程。但是,后来发现并非如此。它在引言中讲述了JavaScript的历史,然后从一些JavaScript的基础内容开始讲起。初看似乎对于用过JavaScript的人来说没有太大必要,但是仔细阅读后发现,它的内容是有针对性的,针对JavaScript的一些与众不同的对象特性作了一些深入挖掘,例如,undefined与null之间的区别,NaN是如何产生的,"" + null + undefined会是什么,null == undefined的计算结果是什么,==与===之间的区别是什么,如何动态删除一个变量,等等。凌大侠的翻译,准确而生动,读起来很舒服。而且凌大侠在一些作者没有特别留心,但对初学者容易误导的地方,根据他多年来积累的学识作了注解,从而让初学者不容易误入歧途。这也是我将来在写文章时要向凌大侠学习的地方。还没读完,期待从中收获更多。后记:读完以后,不仅对于Javascript的面向对象有了理解,能灵活运用JavaScript的各种有用特性,而且还学会了基本的HTML 5 Canvas编程。真可谓一举两得。

精彩短评 (总计37条)

  •     佩服作者的javascript功底和表达能力。通俗易懂,极力推荐。
  •     原来就看过这本书,觉得内容讲得很透彻,这次自己买了就可以好好看看了
  •     前面的内容比较琐碎简单,后面的内容挺好。
  •     非常推荐前端阅读的基础书,对于我自己来说在很短的时间内了解了许多关于JavaScript的重点知识,在第六章继承和第八章设计模式地方,我的理解不深,所以打算找本其他书继续看看。48个番茄!完成!
  •     比想象中的简单一点额
  •     三个字:很实用!
  •     对js oo有所了解了。
  •     本书是最好的Javascript技术书籍,适合各类技术层次的人群阅读。
  •     多了多版本,感觉比较简单,javascript 模式 比这本更好
  •     内容易懂,初学者容易上手。
  •     很值得去细读的一本好书!
  •     感觉2/3的内容 都没讲 面向对象的东西 谁要看呀
  •     国图翻过
  •     感谢 @owlman 提供的书稿。关于JS的许多trick都在里面有谈及,在我学习js各种库如jquery的时候,和写自己的插件时,派上了很大的用场。JS真的是一门很神奇的语言,网页上许许多多有用的、动态绚丽的效果绝大多数都需要用到JS。本书简繁适中,适合新手入门及熟悉者回顾概念,较难的部分需要结合实际经验理解体会。
  •     很不错,我就想要这样的一本书
  •     易懂 是初学JS的好教程
  •     断断续续看了一周,很多内容很基础,但是还是有部分内容值得研究!
  •     讲的很透彻,都是基础
  •     Javascript的入门书中算是很给力的,从各个方面全面的讲解了Javascript,翻译流畅,内容通俗易懂。
  •     又试一本凑热闹的js书
  •     js oo的入门书,想要进一步了解,推荐dogulas的good part和《javascript模式》
  •     对《JavaScript高级程序设计》的高度浓缩,形成了一个框架概念,不过要深入理解继承和封装以及闭包的意义和实际使用场景,还是要反复理解JavaScript中Object的结构以及js的编译原理。
  •     感觉不错,第二版也买了。
  •     谁来完善一下书籍信息?
  •     讲的都是很基础的内容,但是讲得很透彻很易懂,非常值得初学者读。比犀牛和高级程序设计那两本更适合入门
  •     很好,对我找工作启到很重要的学习提示。谢谢
  •     涵盖了大量的基础知识,同时也涉及了一点较高阶的内容
  •     大牛作品,某些概念解释得特别接地气。ps.同是人邮出版,虽然印刷有些小错误但不影响阅读,字体和代码比起图灵系列真是友好太多,感觉图灵的编辑都蛮节约纸张。
  •     看的第一版,真的讲解的相当透彻!深入浅出!强烈推荐有编程经验作为第一本JS读物!第一版使用firefox作为运行学习环境,第二版改为使用Chrome或者Node的Repl作为运行学习环境了,可能再修正一些勘误什么的吧
  •     挺好的,内容丰富,讲解详细
  •     中规中矩的js入门书,并非“js面向对象技巧的专著”。
  •     初入行的时候不知道这本书的定位是什么,后来随着岁月的流逝,我懂了这本书的价值所在,这是一本好书。
  •     书脊破了!不能算新书。
  •     对象原型和继承讲的明白,内容都是比较基础的概念,到写作者功力深厚,翻译也不赖,2天可以看完。
  •     第三章和第四章第五章第六章太尼玛的重要了 这本书相当于新手进阶 用惯了jquery写网页后会忘记原本的JS是什么样子 JS是一门语言 要摒弃JS只能写网页程序的思想 JS应该是图灵完备的语言 能写出任何东西
  •     还没看呢 看了以后再说
  •     适合入门的,没啥新内容
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024