当前位置: 首页 > news >正文

什么是继承?js中有哪儿些继承?

1、什么是继承?

继承是面向对象软件技术中的一个概念。

2、js中有哪儿些继承?

js中的继承有ES6的类class的继承、原型链继承、构造函数继承、组合继承、寄生组合继承。

2.1 ES6中类的继承

class Parent {
    constructor() {
        this.age = 18;
    }
}

class Child extends Parent {
    constructor() {
        super();
        this.name = "张三"
    }
}
let o1 = new Child();
console.log(o1,'o1');

优先使用ES6的class继承方式。

2.2 原型链继承

function Person(name) {
    this.name = "lx"
}

function Student(age) {
    this.age = 22;
}

Student.prototype = new Person();
let stu = new Student();
console.log(stu,'stu');

缺点:如果父类的原型对象上有一个属性 是引用类型的值,那么所有的实例都会共享这个引用类型,如果一个实例改变了该属性,其他实例的该属性都会被改变。

2.3 构造函数继承

function Person(name) {
    this.name = "lx"
}

function Student(age) {
    Person.call(this);
    this.age = 22;
}

let stu = new Student();
console.log(stu,'stu');

优点:原型属性不会被共享

缺点:不能继承父类prototype上的属性

2.4 组合继承(原型链继承+构造函数继承)

function Person(name) {
    this.name = "lx"
}

function Student(age) {
    Person.call(this);
    this.age = 22;
}

Student.prototype = new Person();
let stu = new Student();
console.log(stu,'stu');

优点:1. 原型属性不会被共享  2.可以继承父类的prototype的属性和方法 

缺点:1. 它调用了2次Parent()  2. 它在Child的prototype上添加了父类的属性和方法。

2.5 寄生组合继承(原型链继承+构造函数继承+组合继承)

function Person(name) {
    this.name = "lx"
}

function Student(age) {
    Person.call(this);
    this.age = 22;
}

Student.prototype = Object.create(Person.prototype);
let stu = new Student();
console.log(stu,'stu');

优点:1. 原型属性不会被共享 2. 可以继承父类的prototype的属性和方法 3. 调用1次Parent(),它不会再Child的prototype上添加父类的属性和方法。

缺点:Child的prototype上的原始属性和方法会丢失。

相关文章:

  • 基于RISC-V内核的嵌入式系统在机器人关节控制中的应用研究
  • 1. CEF 下载及wrapper编译
  • 第四篇:Python文件操作与异常处理
  • PromptUp 网站介绍:AI助力,轻松创作
  • daz dForce 模拟后布料的变化不大,如何增强模拟的效果
  • 2025.04.12【生物信息学新工具】| SPADE:高效聚类与降维分析的利器
  • dify报错 Expecting value: line 1 column 1 (char 0)
  • 计算轴承|滚动轴承故障频率
  • 消失的它:揭开 CoreData 托管对象神秘的消失之谜(上)
  • 26考研——数据的表示和运算_运算方法和运算电路_定点数的加减运算 定点数的乘除运算(2)
  • 什么是原型、原型链?
  • Linux网络编程——数据链路层详解,以太网、MAC地址、MTU、ARP、DNS、NAT、代理服务器......
  • 屏幕模块解析
  • 数据分析-数据预处理
  • 【KWDB 创作者计划】第二卷:开发者实战篇
  • mysql 商城商品属性开发的动态解决方案
  • 个人博客系统后端 - 注册登录功能实现指南
  • 设计模式——工厂模式学习总结
  • 企业数据安全---数据分级
  • 【深度学习与大模型基础】第9章-条件概率以及条件概率的链式法则
  • 网站返回500错误页面/如何做好宣传推广
  • 旅游外贸网站建设推广/百度站长工具数据提交
  • 搭建网站费用/精准营销系统
  • 泸州市规划建设局网站/网络广告发布
  • 做app的模板下载网站有哪些/链交换反应
  • 做网站好赚钱吗/长沙关键词优化服务