JavaScript面向对象—继承的实现( 三 )

内存表现:

JavaScript面向对象—继承的实现

文章插图
 
总结:
  • 多个地方用到了继承,可以将上面的核心代码赋值在一个函数里面,如果不想用Object.create(),也可以使用上面封装的createObj函数;
  • function createObj(o) { function Fn() {} Fn.prototype = o return new Fn() } /** * @param {function} SubClass * @param {function} SuperClass */ function inherit(SubClass, SuperClass) { SubClass.prototype = createObj(SuperClass.prototype) Object.defineProperty(SubClass.prototype, 'constructor', { configurable: true, enumerable: false, writable: true, value: SubClass }) }
  • 寄生组合式实现继承的原理其实就是创建一个空对象用于存放子类原型上的方法,并且这个对象的原型指向父类的原型,在ES6中推出的class的实现原理就在这;
 
原文地址:
https://www.cnblogs.com/MomentYY/p/15999285.html




推荐阅读