You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
function object (o) {
function F () {}
F.prototype = o;
return new F();
}
function createAnother (o) {
var clone = object(o);
clone.sayHi = function () {
console.log('hi');
}
return clone;
}
var Cat = createAnother(Animal);
Cat.sayHi();
父类
原型链继承
核心:将父类的实例作为子类的原型。
特点:
缺点:
借用构造函数继承
核心:子类构造函数调用父类的构造函数,等于是复制父类的实例属性给子类(没用到原型)。
特点:
缺点:
组合继承
核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用。
特点:
缺点:
原型式继承
核心:借助原型基于已有的对象创建新对象。
ES5 规范了原型式继承,如下:
特点:
缺点:
寄生式继承
核心:创建一个仅用来封装继承过程的函数,该函数在内部以某种方式来增强对象。
特点:
缺点:
寄生组合继承
核心:通过寄生方式,去掉父类的实例属性,这样,在调用两次父类的构造的时候,就不会初始化两次实例方法/属性,避免的组合继承的缺点。
特点:
缺点:
The text was updated successfully, but these errors were encountered: