出版社:人民邮电出版社
出版日期:2013-3
ISBN:9787115309044
作者:斯托扬
页数:310页
章节摘录
版权页: 插图: 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对象的构建,并为其设置事件监听器。 处理响应——在这一步骤中,事件监听器会在服务器的响应信息到达时发出通知,然后代码就会忙于从中提取有用的信息。
内容概要
Stoyan Stefanov:雅虎公司的Web开发人员、Zend认证工程师。他经常会在其博客(www.phpied.com)与一些相关会议中就JavaScript、PHP等Web开发话题发表独到见解。他还独自运营着其他一些网站,其中包括JSPatterns.com—一个用于探讨JavaScript模式的网站。除此之外,Stoyan还是雅虎性能优化工具的项目领导人,同时参与了多个开源项目,例如Firebug和PEAR。
Stoyan是一位“世界公民”,出生并成长于保加利亚,但却是一个加拿大公民,现居住于美国加利福尼亚州的洛杉矶。在短暂的线下时间里,他喜欢弹吉他,与家人一起去圣莫尼卡海滩或待在游泳池边。
书籍目录
第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程序设计的职位时游刃有余。
作者简介
《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。
《JavaScript面向对象编程指南》着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库。