内存表现:
文章插图
总结:
- 多个地方用到了继承,可以将上面的核心代码赋值在一个函数里面,如果不想用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
推荐阅读
- JavaScript 变量的秘密,你知道吗
- Python反射介绍
- Java 面向对象进阶内容
- 阳台适宜面向什么方位?
- Python对象及内存管理机制
- JavaScript的ID生成器-Nano ID
- 使用MapStruct,让Bean对象之间转换更简单
- 电脑病毒“销声匿迹”?其实它只是“换对象”了
- 送男友什么礼物比较好
- JavaScript 内置对象之——Date,看完你会更清晰