文章目录
一. 面向对象编程概述
面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的计算机编程架构,对比于早期的面向过程编程(C语言为代表)。OOP将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。
每一个对象(object)都是功能中心,具有明确分工,可以完成接受信息、处理数据、发出信息等任务。对象可以复用,通过继承机制还可以定制。因此,面向对象编程具有灵活性、代码复用性、可拓展性,高度模块化等特点,容易维护和开发。
二. 实例对象
2.1 对象的本质:单个实体的抽象
应该怎么来理解实例对象呢 ?我们说实例对象就是对于真实世界中的某个事物抽象的提炼整合。 一本书,一棵树,一个人都可以是一个实例对象。面向对象编程就是通过模拟他们之间复杂的实际关系来解决问题。
2.2 实例对象(属性 + 方法)
一个完整的实例对象中定义了它的属性(property)和方法(method)。属性就是对象本身具有的一些特征,实例对象具有的功能点就属于它拥有的方法。以一只小狗🐶来举例:
- 属性(property)—— 名字,性别,品种,年龄,花色…
- 方法(method)—— 奔跑,吼叫…(拆家警告…haha)
三. 构造函数
面向对象编程的核心步骤就是生成实例对象。至于生成实例对象所参照的 “模板” ,不同的面向对象编程语言选择上会有差别,比如典型的C++ 和 Java,他们中的这个模板被称为 “类(class)” ,对象就是“类”的实例。
但JavaScript中的对象体系是基于构造函数(constructor)和原型对象(prototype)的。
简单的内存图示如下:
今天这篇就先来深入了解一下JavaScript中的构造函数(constructor)。下一篇中我们再深入探讨面向对象编程的另一个很重要的方面——原型对象(prototype)。
(后续文末更新链接)
3.1 构造函数的声明
构造函数的声明和之前讲的普通函数声明很类似:
- function关键字:
function Dog (name) {
this.name = name;
};
- 传统函数表达式:
var Dog = function (name) {
this.name = name