首页 > 其他 > 详细

ES5的继承方式

时间:2019-11-21 18:50:20      阅读:77      评论:0      收藏:0      [点我收藏+]

ES5中调用new的操作

1.先创建一个新的对象obj = {}
2.给新对象obj设置原型属性 obj.__proto__ = A.prototype;
3.给新对象设置实例属性 A.constructor.apply(obj,args),将属性和方法实例化,constructor中的this指向的是新创建的obj对象
4.返回构造函数的结果,obj / this / 其他引用对象;

原型链继承

  1. 子类的原型是父类的实例对象 child.prototype = new father();
  2. 修改子类原型的constructor(未改之前指向father 即 new father().constructor == father) child.prototype.constructor = child;
    这样子类child就具有了和父类相同的属性和方法(在child的原型对象中)
    子类继承父类的方式是通过中间的父类的实例对象

组合继承

寄生组合继承

  1. 创建一个新的对象obj,让obj指向father的原型对象father.prototype ,obj = Object.create(father.prototype)
  2. 将子类的原型对象设置成obj,child.prototype = obj,实现子类可以继承父类的原型对象中的属性,子类实例对象间属性的共有性。
  3. 在子类的构造函数中调用 father.call(this), 实现子类可以继承父类的实例属性,并保持子类实例对象间属性的独立性。
    子类继承父类的方式主要是:直接将父类的原型对象和实例属性赋给了子类。

ES5继承的主要方式是:先创建子类的this对象,将父类的方法和属性绑定到子类上,father.appply(this,args);

技术分享图片

ES5的继承方式

原文:https://www.cnblogs.com/panjingshuang/p/11906777.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!