
整理了部分类的知识点。类的定义,如何实现一个类,类有哪些特点,等等。基于ES3, ES5.
理解JavaScript中的类
类的作用:让每个对象都共享某些属性。
类的实现:基于JavaScript的原型继承机制。
类的特性:动态可继承(编程哲学——鸭式辩型)。
类的核心:原型对象。所有类的实例都会从同一个原型对象中继承。属性
类的定义:通常使用构造函数:
- 调用构造函数会自动创建一个新对象,构造函数只需初始化这个新对象的状态,而新对象的原型正是构造函数的prototype
- 意味着同一个构造函数创建的所有对象都继承自一个相同的对象,因此他们都是同一个类的成员
- 构造函数可看做是类的’外在表现’
为方便标识,字符串相关部分使用了ES6的模板字符串。
编程约定:构造函数(类名)首字母大写:构造函数就是用来构造新对象的,必须通过关键字new调用,开发者可以通过命名约定来判断是否是构造函数。
1 | /** |
在原型对象上定义类方法。
该prototype是每个JavaScript函数都自动拥有的,它本身的值就是一个对象,这个对象包含一个唯一一个不可枚举的属性constructor。
constructor的值是一个函数对象。
1 | /** |
1 | var p = Girl.prototype; // 定义一个原型对象 |
构造函数对象:用于生成类的函数,为JavaScript的类定义了名字。
原型对象:类的唯一标识————原型对象的属性被所有实例所继承。如果某个属性是函数的话,就会作为类的实例的方法来使用。
实例对象:类的实例,每一个都是独立的对象。在该实例上添加属性是不会影响其他实例的,但在原型对象上添加方法会影响所有实例。
定义在实例上的非函数属性,实际上是实例字段。
下面定义一个函数,分三步定义一个类。
我们将定义类的步骤封装成一个函数。
1 | // 需要提前声明一个函数 |
- 毕竟不是灵魂画手,大概便是这样……

评论