JS 的原型与继承
JS 是一门动态语言,没有类。但需要实现自己的继承,即原型继承。JS 对象的一些属性和方法都继承自别的对象。
除了 null 和 undefined 之外所有数据类型都有 proto 属性,该属性所指的对象即是对象的原型。
原型链
构造函数,是一个普通函数,函数名首字母大写,内部使用 this,生成实例需要使用 new 关键字,且 this 将绑定在实例对象上。
1 | function Person(name) { |
缺点,每个实例有自己的属性和方法,无法共享。因此给构造函数设置 prototype 属性,存储需要共享的属性和方法。
1 | function Person(name) { |
每个对象都有一个指向其原型的属性,原型的终点是 null。
class
ES6 引入 class 来定义类,是语法糖。
1 | class Person { |
继承
1 | class Person { |