传统的实例化与继承
假设我们有两个类,Class:function Class() {}和SubClass:function SubClass(){},SubClass需要继承自Class。传统方法一般是按如下步骤来组织和实现的:
Class中被继承的属性和方法必须放在Class的prototype属性中
SubClass中自己的方法和属性也必须放在自己prototype属性中
SubClass的prototype对象的prototype(__proto__)属性必须指向的Class的prototype
这样一来,由于prototype链的特性,SubClass的实例便能追溯到Class的方法,从而实现继承:
new SubClass() Object.create(Class.prototype)
| |
V V
SubClass.prototype ---> { }
{ }.__proto__ ---> Class.prototype
假设我们有两个类,Class:function Class() {}和SubClass:function SubClass(){},SubClass需要继承自Class。传统方法一般是按如下步骤来组织和实现的:
Class中被继承的属性和方法必须放在Class的prototype属性中
SubClass中自己的方法和属性也必须放在自己prototype属性中
SubClass的prototype对象的prototype(__proto__)属性必须指向的Class的prototype
这样一来,由于prototype链的特性,SubClass的实例便能追溯到Class的方法,从而实现继承:
new SubClass() Object.create(Class.prototype)
| |
V V
SubClass.prototype ---> { }
{ }.__proto__ ---> Class.prototype