JavaScript面向对象编程指南(第2版) [Object-Oriented JavaScript]

JavaScript面向对象编程指南(第2版) [Object-Oriented JavaScript] pdf epub mobi txt 电子书 下载 2025

[加拿大] Stoyan Stefanov,[印] Kumar Chetan Sharma 著,陆禹淳,凌杰 译
图书标签:
  • JavaScript
  • 面向对象编程
  • OOP
  • JavaScript设计模式
  • 前端开发
  • Web开发
  • 第2版
  • Object-Oriented JavaScript
  • 原型链
  • 继承
  • 封装
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115372703
版次:2
商品编码:11642532
品牌:异步图书
包装:平装
外文名称:Object-Oriented JavaScript
开本:16开
出版时间:2015-01-01
用纸:胶版纸
页数:352
正文语种:中文

具体描述

编辑推荐

知名的Web开发人员和作者。受到国内众多前端开发人员,如淘宝UED团队的推崇和推荐。 Stoyan Stefanov:Facebook公司工程师、作家、演说家。他经常会在其博客(www.phpied.com)与一些相关会议中就Web开发话题发表独到见解。他还运营着其他一些网站,其中包括JSPatterns.com—一个用于探讨JavaScript模式的网站
内容易懂,初学者容易上手

内容简介

JavaScript语言是一种具有高度表达能力的、基于原型特性的、非常灵活的面向对象程序设计语言。本书着重于介绍JavaScript在面向对象方面的特性,以为您展示如何去构建强健的、可维护的、功能强大的应用程序及程序库。
本书是《JavaScript面向对象编程指南》的第二版,全书包括8章和4个附录。依次介绍了JavaScript的发展历史、基础性话题(变量、数据类型、数组、循环以及条件表达式)、函数、对象、原型、继承的实现、BOM和DOM等。附录部分包括了学习JavaScript编程常用的参考资源。尤其值得一提的是,本书作者是JavaScript设计模式方面的专家,他在本书第8章中介绍了几种常用的JavaScript编程模式,这也成为他的另一本重要著作《JavaScript模式》(JavaScript Patterns)奠定了基础。
本书全面地覆盖了JavaScript语言的OO特性,同时兼顾基础知识,对初学者来说,是难得的JavaScript佳作。读者不需要具备任何的JavaScript基础知识及项目经验,通过学习这本书,将会在面试有关JavaScript程序设计的职位时游刃有余。

作者简介

Stoyan Stefanov:Facebook公司工程师、作家、演说家。他经常会在博客(www.phpied.com)上与一些相关会议中就Web开发话题发表独到见解。他还运营着其他一些网站,其中包括JSPatterns.com——一个专门探讨JavaScript模式的网站。Stoyan曾在Yahoo!公司任职,担任YSlow 2.0架构师职务,并且是图像优化工具Smush.it的作者。
Kumar Chetan Sharma原本一直致力于成为一个电子工程师,并梦想着打造一个音响系统。但由于一次偶然的机会,他得到了一份与HTML相关的兼职,然后自然地学习了CSS和JavaScript,从此便一发不可收拾。要知道在那个年代,JavaScript基本上还只能用来验证表单和制作一些奇特的DHTML效果,且IE6还在世界范围内独占鳌头。但就从那时起,他就已经在开发基于LAMP架构的Web应用了。从白色标签的社交网络应用,到为电信运营商制作的Web控制面板,再到联网的电子充电设备,都有他开发的身影。目前他在Yahoo!公司的搜索部门从事前端工程师的工作。

目录

第1章 面向对象的JavaScript 1
1.1 回顾历史 2
1.2 浏览器的战争与复兴 3
1.3 分析现状 4
1.4 展望未来 5
1.5 ECMAScript 5 6
1.6 面向对象的程序设计 6
1.6.1 对象 7
1.6.2 类 8
1.6.3 封装 8
1.6.4 聚合 9
1.6.5 继承 9
1.6.6 多态 10
1.7 OOP小结 10
1.8 训练环境设置 11
1.8.1 WebKit所附带的Web审查工具 11
1.8.2 Mac上的JavaScriptCore 12
1.8.3 更多控制台 13
1.9 本章小结 15

第2章 基本数据类型、数组、循环及条件表达式 16
2.1 变量 16
2.2 操作符 19
2.3 基本数据类型 23
2.3.1 查看类型操作符—typeof 24
2.3.2 数字 24
2.3.3 字符串 29
2.3.4 布尔值 33
2.3.5 undefined与null 39
2.4 基本数据类型综述 41
2.5 数组 42
2.5.1 增加、更新数组元素 43
2.5.2 删除元素 44
2.5.3 数组的数组 44
2.6 条件与循环 45
2.6.1 if条件表达式 46
2.6.2 else语句 46
2.6.3 代码块 47
2.6.4 检查变量是否存在 48
2.6.5 循环 53
2.7 注释 58
2.8 本章小结 58
2.9 练习题 59

第3章 函数 61
3.1 什么是函数 62
3.1.1 调用函数 62
3.1.2 参数 63
3.2 预定义函数 64
3.2.1 parseInt() 65
3.2.2 parseFloat() 67
3.2.3 isNaN() 68
3.2.4 isFinite() 68
3.2.5 URI的编码与反编码 69
3.2.6 eval() 69
3.2.7 一点惊喜—alert()函数 70
3.3 变量的作用域 71
3.4 函数也是数据 73
3.4.1 匿名函数 75
3.4.2 回调函数 75
3.4.3 回调示例 77
3.4.4 即时函数 79
3.4.5 内部(私有)函数 80
3.4.6 返回函数的函数 81
3.4.7 能重写自己的函数 82
3.5 闭包 83
3.5.1 作用域链 84
3.5.2 利用闭包突破作用域链 85
3.5.3 getter与setter 91
3.5.4 迭代器 92
3.6 本章小结 93
3.7 练习题 93

第4章 对象 95
4.1 从数组到对象 95
4.1.1 元素、属性、方法与成员 97
4.1.2 哈希表、关联型数组 98
4.1.3 访问对象属性 98
4.1.4 调用对象方法 100
4.1.5 修改属性与方法 101
4.1.6 使用this值 102
4.1.7 构造器函数 102
4.1.8 全局对象 104
4.1.9 构造器属性 106
4.1.10 instanceof操作符 106
4.1.11 返回对象的函数 107
4.1.12 传递对象 108
4.1.13 比较对象 109
4.1.14 Webkit控制台中的对象 110
4.2 内建对象 111
4.2.1 Object 112
4.2.2 Array 113
4.2.3 Function 117
4.2.4 Boolean 124
4.2.5 Number 125
4.2.6 String 127
4.2.7 Math 132
4.2.8 Date 134
4.2.9 RegExp 139
4.2.10 Error对象 146
4.3 本章小结 149
4.4 练习题 150

第5章 原型 153
5.1 原型属性 154
5.1.1 利用原型添加方法与属性 154
5.1.2 使用原型的方法与属性 155
5.1.3 自身属性与原型属性 156
5.1.4 利用自身属性重写原型属性 158
5.1.5 isPrototypeOf()方法 162
5.1.6 神秘的__proto__链接 163
5.2 扩展内建对象 164
5.2.1 关于扩展内建对象的讨论 166
5.2.2 原型陷阱 167
5.3 本章小结 169
5.4 练习题 170

第6章 继承 171
6.1 原型链 171
6.1.1 原型链示例 172
6.1.2 将共享属性迁移到原型中去 175
6.2 只继承于原型 178
6.3 uber—子对象访问父对象的方式 181
6.4 将继承部分封装成函数 183
6.5 属性拷贝 185
6.6 请小心处理引用拷贝 187
6.7 对象之间的继承 190
6.8 深拷贝 192
6.9 object() 194
6.10 原型继承与属性拷贝的混合应用 195
6.11 多重继承 197
6.12 寄生式继承 199
6.13 构造器借用 200
6.14 本章小结 203
6.15 案例学习:图形绘制 206
6.15.1 分析 207
6.15.2 实现 207
6.15.3 测试 211
6.16 练习题 213

第7章 浏览器环境 215
7.1 在HTML页面中引入JavaScript代码 215
7.2 概述:BOM与DOM 216
7.3 BOM 217
7.3.1 window对象再探 217
7.3.2 window.navigator 218
7.3.3 控制台的备忘功能 219
7.3.4 window.location 219
7.3.5 window.history 221
7.3.6 window.frames 222
7.3.7 window.screen 223
7.3.8 window.open()/close() 224
7.3.9 window.moveTo()、window.resizeTo() 225
7.3.10 window.alert()、window.prompt()、window.confirm() 225
7.3.11 window.setTimeout()、window.setInterval() 227
7.3.12 window.document 229
7.4 DOM 229
7.4.1 Core DOM与HTML DOM 231
7.4.2 DOM节点的访问 233
7.4.3 DOM节点的修改 242
7.4.4 新建节点 245
7.4.5 移除节点 248
7.4.6 只适用于HTML的DOM对象 250
7.5 事件 254
7.5.1 内联HTML属性法 254
7.5.2 元素属性法 254
7.5.3 DOM的事件监听器 255
7.5.4 捕捉法与冒泡法 257
7.5.5 阻断传播 258
7.5.6 防止默认行为 260
7.5.7 跨浏览器的事件监听器 261
7.5.8 事件类型 262
7.6 XMLHttpRequest对象 263
7.6.1 发送请求 264
7.6.2 处理响应 265
7.6.3 在早于7的IE版本中创建XMLHttpRequest对象 266
7.6.4 A代表异步 267
7.6.5 X代表XML 267
7.6.6 实例示范 268
7.7 本章小结 270
7.8 练习题 272

第8章 编程模式与设计模式 274
8.1 编程模式 275
8.1.1 行为隔离 275
8.1.2 命名空间 278
8.1.3 初始化分支 281
8.1.4 惰性初始 282
8.1.5 配置对象 283
8.1.6 私有属性和方法 285
8.1.7 特权函数 286
8.1.8 私有函数的公有化 286
8.1.9 即时函数 287
8.1.10 模块 288
8.1.11 链式调用 289
8.1.12 JSON 290
8.2 设计模式 292
8.2.1 单件模式1 292
8.2.2 单件模式2 293
8.2.3 工厂模式 294
8.2.4 装饰器模式 296
8.2.5 观察者模式 299
8.3 本章小结 302

附录A 保留字 303
附录B 内建函数 307
附录C 内建对象 310
附录D 正则表达式 347



前言/序言


《JavaScript面向对象编程指南(第2版)》—— 驾驭现代JavaScript的面向对象精髓 在飞速发展的Web开发领域,JavaScript已然成为构建交互式、动态化应用的基石。而面向对象编程(OOP)作为一种强大的编程范式,更是理解和驾驭复杂JavaScript项目的不二法门。第二版《JavaScript面向对象编程指南》深入剖析了JavaScript面向对象的精髓,为开发者提供了一套系统、前沿的知识体系,助力他们在实际开发中构建更优雅、可维护、可扩展的代码。 本书不仅仅是对JavaScript语言特性的罗列,更是从设计理念、模式应用和实践技巧的深度出发,引导读者构建一种面向对象的思维方式。它关注的是如何利用JavaScript特有的原型链、闭包、模块化等机制,实现类class、继承、封装、多态等面向对象的关键概念,并将其融会贯通到现代Web应用程序的开发中。 核心理念与精髓剖析: 本书的开篇便着力于夯实面向对象编程的基础。它清晰地阐述了面向对象编程的四大基本原则——封装、继承、多态、抽象,并结合JavaScript的实际情况,深入浅出地解释了这些原则如何在JavaScript中得以实现。 封装(Encapsulation): 开发者将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元——对象。本书会讲解如何利用JavaScript的函数、闭包以及ES6的class语法,有效地实现属性的隐藏和方法的公开,从而保护对象内部状态的完整性,降低代码间的耦合度。我们将探讨如何通过getter和setter来控制属性的访问,以及如何利用立即执行函数表达式(IIFE)和模块模式来创建私有作用域,实现真正的封装。 继承(Inheritance): 对象之间可以共享和扩展彼此的属性和方法,从而避免代码的重复编写,提高代码的可重用性。本书会详细讲解JavaScript中原型链的工作原理,这是JavaScript实现继承的核心机制。我们将深入研究`prototype`属性、`__proto__`属性以及`Object.create()`方法,并对比ES6引入的`class`语法如何提供了一种更接近传统面向对象语言的继承方式,同时也会揭示其背后依然是原型链在发挥作用。 多态(Polymorphism): 允许不同类的对象对同一消息(方法调用)做出响应,即“一个接口,多种实现”。本书将探讨JavaScript在函数式编程和原型继承方面的特性如何天然支持多态,例如通过鸭子类型(Duck Typing)和接口的抽象来实现。读者将学习如何设计灵活的函数,使其能够处理不同类型的对象,从而编写出更具适应性的代码。 抽象(Abstraction): 隐藏复杂的实现细节,只向用户暴露必要的接口。本书将引导开发者如何通过接口、抽象类(虽然JavaScript没有原生支持,但可以通过模式模拟)以及设计模式来定义清晰的API,降低使用者理解和使用代码的难度,专注于业务逻辑。 JavaScript的面向对象独特之处: 与许多传统的基于类的面向对象语言不同,JavaScript的面向对象模型是基于原型(Prototype-based)的。本书将深入探索JavaScript原型链的奥秘,解释对象是如何通过原型链查找属性和方法的。我们将详细讲解: 构造函数(Constructor Functions): 如何利用函数创建对象,并理解`this`关键字在构造函数中的指向。 `prototype`对象: 每个函数都拥有一个`prototype`属性,它是一个对象,所有通过该构造函数创建的实例将共享这个`prototype`对象上的属性和方法。 原型链(Prototype Chain): 对象之间通过`[[Prototype]]`(内部槽,通常可以通过`__proto__`访问)连接起来,形成一个链条,当访问一个对象的属性或方法时,如果对象自身没有,就会沿着原型链向上查找,直到找到为止,或者到达链的顶端(`Object.prototype`)。 `Object.create()`: 一种更直接的原型继承方式,允许开发者创建一个新对象,并将其原��设置为另一个现有对象。 ES6的`class`语法: 虽然`class`语法提供了一种更清晰、更易于理解的面向对象写法,但本书会揭示其本质仍然是基于原型的,帮助开发者理解“语法糖”背后的机制,从而更深入地掌握JavaScript的面向对象特性。 现代JavaScript面向对象实践: 随着ECMAScript标准的不断更新,JavaScript在面向对象编程方面也涌现出许多新的特性和最佳实践。本书将紧跟时代步伐,重点讲解: ES6+类(Class)的深入应用: 不仅介绍`class`的基本语法,更会深入探讨静态方法、继承、`super`关键字的使用、getter和setter的实现,以及如何利用`class`来构建更清晰、更易于维护的代码结构。 模块化(Module): 现代JavaScript开发离不开模块化。本书将讲解ES6模块(`import`/`export`)以及CommonJS等模块化规范,说明如何将面向对象的思想应用到模块的设计中,实现代码的组织、复用和解耦。 设计模式(Design Patterns): 设计模式是解决常见软件设计问题的成熟方案。本书将结合JavaScript的面向对象特性,详细介绍多种经典且实用的设计模式,例如: 工厂模式(Factory Pattern): 提供一个创建对象的接口,但由子类决定实例化哪一个类。 单例模式(Singleton Pattern): 确保一个类只有一个实例,并提供一个全局访问点。 观察者模式(Observer Pattern): 定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 装饰器模式(Decorator Pattern): 动态地给一个对象添加一些额外的职责。 策略模式(Strategy Pattern): 定义一系列算法,把它们封装起来,并使它们可以相互替换。 外观模式(Facade Pattern): 为一组复杂的子系统提供一个一致的接口。 组合模式(Composite Pattern): 将对象组合成树形结构以表示“部分-整体”的层次结构。 原型模式(Prototype Pattern): 通过克隆现有对象来创建新对象。 这些模式的讲解将不仅仅是理论介绍,更会提供大量的JavaScript代码示例,帮助读者理解如何在实际项目中应用这些模式来解决具体问题。 提升代码质量与开发效率: 本书强调的不仅仅是“如何写”面向对象代码,更是“为何如此写”。通过深入理解面向对象设计的原则和模式,开发者能够: 提高代码的可读性和可维护性: 结构清晰、逻辑分明的面向对象代码更容易被理解和修改,从而降低维护成本。 增强代码的复用性: 通过继承、组合和模块化,可以有效地复用已有的代码,减少重复劳动。 提升代码的可扩展性: 基于良好的面向对象设计,新的功能可以更容易地被添加,而不会对现有代码产生大的影响。 降低bug发生的几率: 封装和模块化有助于减少代码间的耦合,降低潜在的相互影响,从而减少bug的产生。 构建更复杂的应用程序: 掌握面向对象编程是构建大型、复杂Web应用程序的必备技能。 目标读者: 本书适合所有希望深入理解JavaScript面向对象编程的开发者。无论您是初学者,希望建立坚实的编程基础;还是有一定经验的开发者,希望提升代码质量和设计能力;亦或是正在转型到JavaScript生态的开发者,本书都能为您提供宝贵的指导。 结语: 《JavaScript面向对象编程指南(第2版)》是一本集理论深度、实践指导和前沿特性于一体的权威著作。它将带领读者穿越JavaScript面向对象的复杂世界,掌握构建健壮、高效、可维护的现代Web应用程序的必备技能。通过本书的学习,您将能够更自信地驾驭JavaScript,写出更具艺术性和专业性的代码。

用户评价

评分

对于那些已经有一定JavaScript基础,想要进一步提升自己编程能力和设计思维的开发者来说,这本书绝对是必读之选。它不仅仅是讲了怎么写代码,更是探讨了“为什么”要这么写,以及如何写出更健壮、更易于维护和扩展的代码。书中涉及到的设计模式,比如工厂模式、单例模式等等,都通过生动的案例进行了讲解,让我深刻理解了它们在实际项目中的价值和应用场景,这对于我今后的架构设计有很大的帮助。

评分

这次的重版,相比之前的版本,我觉得在内容的组织上更加顺畅了。作者似乎花了不少心思来梳理和优化知识点之间的逻辑关系,这一点对于我们这些需要深入理解JavaScript底层原理的开发者来说,简直是福音。比如,我在阅读关于原型链继承的部分时,感觉整个概念的讲解脉络更加清晰,那些容易混淆的细节也得到了更充分的解释,不再是零散的知识点堆砌,而是形成了一个完整的知识体系,让人更容易理解和掌握。

评分

这本书的封面设计挺吸引人的,那种深蓝色配上抽象的JavaScript代码元素,给人一种专业且现代的感觉。拿到手的时候,纸张的质感也很不错,拿在手里很有分量,不是那种廉价的印刷品。我尤其喜欢它印刷的字体大小和行间距,长时间阅读也不会觉得眼睛疲劳,这点对于一本技术书籍来说非常重要。包装也挺仔细的,没有磕碰或折损的痕迹,看得出出版方在细节上很用心。

评分

这本书的排版和语言风格都非常符合我的阅读习惯。它不像有些技术书籍那样枯燥乏味,而是用一种比较轻松易懂的语言来阐述复杂的概念。而且,书中穿插了一些作者的个人见解和行业经验,这让阅读过程更加生动有趣,也让我学到了很多书本上没有直接写明的“软技能”。总的来说,这是一本集理论与实践于一身的优秀技术书籍,强烈推荐给所有对JavaScript面向对象编程感兴趣的开发者。

评分

我是一名刚入行不久的JavaScript开发者,对于面向对象这个概念一直有些模糊。市面上很多教程要么讲得太浅,要么就是直接丢一大堆概念,让我无从下手。但是这本书,真的让我眼前一亮!它从最基础的概念讲起,一步步引导读者理解什么是对象,什么是类,以及如何在JavaScript中实现面向对象的设计。举例非常贴切,很多例子都是我日常开发中经常遇到的场景,读起来感觉特别亲切,也更容易将学到的知识应用到实际工作中。

评分

有关面向对象的,是该补充一下知识了。。。???

评分

值得买来好好学习的书

评分

京东做活动买的,书都很薄,看上去不会容易疲倦。这么多书,可以看很久了。希望可以通过看书牢牢掌握JavaScript

评分

初学者应该详细的研读!

评分

比较适合入门级别。

评分

内容详细,是我想要的

评分

学习!!!!!!!!!!!!!!!

评分

书很好,在书店买要贵一半,这个活动很值

评分

啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦了

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有