《JavaScript 面向对象精要》 - 介绍
《JavaScript 面向对象精要》—— Nicholas C. Zakas
关于面向对象编程,大多数开发者会联想到学校教的基于类的面向对象语言,如 Java、C++。
在这些语言里,无论做什么事,都要先创建一个类。
行业中常见的设计模式也在加强基于类的概念的使用。
但是,JavaScript 不使用类,这也是为什么人们在学完 Java 或 C++ 后再去学 JavaScript,会感到困惑。
面向对象语言具有几个特性:
- 封装:数据、操作数据的功能组合在一起;通过定义一个对象就可以实现。
- 聚合:一个对象可以引用另一个对象。
- 继承:创建新对象时可拥与另一个对象的相同的功能,而无需复制功能代码。
- 多态:一个接口可被多个对象实现。
(封装、继承、多态 被称为面向对象的三大特征)
JavaScript 具有所有这些特性,但是因为语言没有类的概念,所以有些特性并没有以您预期的方式实现。
乍一看,JavaScript 程序跟 C 程序一样是面向过程的程序;
编写函数,调用函数时传递参数,这就是一个没有任何对象的脚本。
然而,仔细研究一下这个语言,就会发现使用点符号的对象。
跟许多面向对象语言一样,JavaScript 也使用点符号来访问对象上的属性和方法。
但是在 JavaScript 中,你不需要定义类,不需要导入包,不需要导入头文件,你只需要使用相应的数据类型进行编码即可。
你当然可以用过程化的方式编写 JavaScript,但是当你利用它的面向对象特性时,它真正的威力就会显现出来。
注意,很多传统面向语言中概念不一定适用于 JavaScript。
虽然这常常让初学者感到困惑,你很快就会发现 JavaScript 的弱类型特性允许编写更少的代码来完成与其他语言相同的任务。
你可以直接开始编码,而不需要提前计划所需的类。
需要一个具有特定字段的对象吗?只需创建一个特定对象。
你忘记向对象添加方法了吗?没问题,以后再加。
你将了解 JavaScript 实现面向对象编程的独特方式。
抛开类和基于类的继承的概念,了解行为类似的基于原型的继承和构造函数。
你将了解如何创建对象、定义自己的类型、使用继承,以及其他高效操作对象方式。
简而言之,你将理解并学会编写专业的 JavaScript 所需的所有知识。
第 1 章 基本类型和引用类型 介绍 JavaScript 中两种不同的值类型:基本类型、引用类型。您将了解它们之间的区别,理解它们的差异对于全面理解 JavaScript 很重要。
第 2 章 函数 详述 JavaScript 中的函数。第一类函数是 JavaScript 最有趣的地方。
第 3 章 理解对象 详细介绍 JavaScript 中对象的组成。JavaScript 对象的行为不同于其他语言中的对象,因此深入理解对象如何工作对于掌握该语言至关重要。
第 4 章 构造器和原型 通过更具体地查看构造函数来扩展前面对函数的讨论。所有的构造函数都是函数,但是它们的使用方式有点不同,本章在讨论创建您自己的自定义类型的同时将会探讨这些差异。
第 5 章 继承 解释如何在 JavaScript 实现继承。尽管没有类,但不意味着继承是不可能的。在本章,你将学会原型继承,及其与类继承的区别。
第 6 章 对象模式 遍览常用对象模式。在 JavaScript 中有许多不同的方法来构建和组合对象,本章将向您介绍用于构建和组合对象的最流行模式。