JS中的继承—继承的几种方式

本文探讨JavaScript中的继承实现,包括Object.create、组合继承、寄生组合继承以及ES6的Class。重点讲解了Object.create的作用和使用,组合继承的缺点,以及ES6中Class和super关键字的运用。通过理解这些概念,可以更好地掌握JavaScript的面向对象编程。
摘要由CSDN通过智能技术生成
个人理解:

所有实现继承的实现主要是根据 原型链,构造属性来完成。

根据设计规范所衍生出了不同的方法

在Objec.create方法出现之前,主要依靠三种方法:

  1. 原型链继承
  2. 构造函数继承
  3. 组合继承(原型继承 + 构造继承)

在Objec.create方法出现之后,衍生出了另外三种:

  1. 原型式继承
  2. 寄生式继承
  3. 寄生组合继承

ES6规范出台后:

  1. class 类
Object.create()

接收两个参数:
proto, 创建对象的原型对象 , 默认为 Object.prototype
propertiesObject,可选参数 , 默认新对象的属性,对应Object.defineProperties()的第二个参数
该方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。

具体可查看https://developer.mozilla.org/zhCN/docs/Web/JavaScript/Reference/Global_Objects/Object/create

根据原型链的特点, 实例的__proto__ 指向 构造函数的 prototype
在使用时, 我们应当这样使用:

function Person (){
   }

const person = Object.create(Person.prototype)

console.log(person.__proto__ === Person.prototype)
console.log(person.__proto__.construtor === Person.prototype.construtor);

在实际使用过程中,Object.create帮助我们省去了原型指向的过程

组合继承

顾名思义, 通过指向原型+指定构造函数的方式来达到继承目的

function Parent(sex){
   
    this
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值