在面向对象语言里,继承分为“接口继承” 和 “实现继承”,ECMAScript 只支持“实现继承”,“实现继承”主要依靠原型链实现。
原型链继承
》》 最常用,让原型对象指向另一个对象的实例
function A(){}
function B(){}
B.prototype = new A()
—————————————–
借用构造函数
》》 apply() 和 call() 又叫伪造对象或经典继承子类型构造函数的内部调用超类型构造函数
function(){
temp.call(this);
}
—————————————–
原型式继承
var anotherPerson = Object.create(person)
—————————————–
寄生式继承
》》 创建一个仅用于封装继承过程的函数,在函数内部增强对象
function(o){
var clone = object(o);
clone.sayHi = function(){};
return clone;
}
—————————————–
组合继承
》》因为各种方法都有优劣,以上方法可以自由组合