如何实现继承

本文介绍了JavaScript中四种常见的继承方式:类继承、原型链继承、构造函数继承和组合继承。每种方式都有其特点和缺点,如原型链继承可能导致属性共享导致意外修改,而构造函数继承不能继承原型属性和方法。组合继承则结合两者优点,但也存在性能开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、class 类继承

二、原型链继承

缺点:改变s1的play属性,会发现s2也跟着发生变化了,这是因为两个实例使用的是同一个原型对象,内存空间是共享的,基本数据类型字符串没有跟着发生变化,这里是这个play数组跟着发生变化了

三、构造函数继承

缺点:相比原型链继承方式,父类的引用属性不会被共享,优化了原型链继承继承方式的弊端,但是只能继承父类的实例属性和方法,不能继承原型属性或者方法

四、组合继承


什么是继承?

继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码

在子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能

一、class 类继承

class Car{
    constructor(color,speed){
        this.color = color
        this.speed = speed
        // ...
    }
}

 在继承color、speed的同时,也可以重新定义某些属性、并重写或者覆盖某些属性和方法:

class Truck extends Car{
    constructor(color,speed){
        super(color,speed)
        this.color = "black" //覆盖
        this.Container = true // 货箱
    }
}

二、原型链继承

原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浏览器翻译官~

你的励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值