Javascript的ES5,ES6的7种继承详解

Javascript的ES5、ES6的7种继承详解

Javascript是一种面向对象的语言,继承是面向对象编程中的重要概念。ES5和ES6是Javascript中的两个版本,都提供了不同的继承方式。本攻略将介绍Javascript中ES5和ES6的7种继承方式。

1. 原型链继承

原型链继承是Javascript中最基本、最常用的继承方式。通过将父类的实例作为子类的原型,实现子类对父类成员变量和方法的继承。

实现示例

function Parent() {
    this.name = 'parent';
    this.play = [1, 2, 3];
}

function Child() {
    this.type = 'child';
}

Child.prototype = new Parent();

2. 构造函数继承

构造函数继承是通过在子类的构造函数中调用父类构造函数,实现对父类成员变量和方法的继承。

实现示例

function Parent() {
    this.name = 'parent';
    this.play = [1, 2, 3];
}

function Child() {
    Parent.call(this);
    this.type = 'child';
}

3. 组合继承

组合继承是将原型链继承和构造函数继承结合起来使用,实现继承。

实现示例

function Parent() {
    this.name = 'parent';
    this.play = [1, 2, 3];
}

function Child() {
    Parent.call(this);
    this.type = 'child';
}

Child.prototype = new Parent();

4. 原型式继承

原型式继承是使用一个中间对象作为父类实例的原型,实现对父类成员变量和方法的继承。

实现示例

function createObj(o) {
    function F() {}
    F.prototype = o;
    return new F();
}

var parent = {
    name: 'parent',
    play: [1, 2, 3]
};

var child = createObj(parent);
child.type = 'child';

5. 寄生式继承

寄生式继承是在原型式继承的基础上,对中间对象进行扩展从而使其具有更多的功能。

实现示例

function createObj(o) {
    function F() {}
    F.prototype = o;
    return new F();
}

function createChild(parent) {
    var child = createObj(parent);
    child.type = 'child';
    return child;
}

var parent = {
    name: 'parent',
    play: [1, 2, 3]
};

var child = createChild(parent);

6. 寄生组合式继承

寄生组合继承是在组合继承的基础上,将父类的原型赋值给中间对象,并将子类的原型指向中间对象,从而达到不重复调用父类构造函数,提高性能的效果。

实现示例

function Parent() {
    this.name = 'parent';
    this.play = [1, 2, 3];
}

function Child() {
    Parent.call(this);
    this.type = 'child';
}

(function() {
    var F = function() {};
    F.prototype = Parent.prototype;
    Child.prototype = new F();
})();

7. class继承

class继承是ES6新增的继承方式,通过使用class语法糖,实现对父类成员变量和方法的继承。

实现示例

class Parent {
    constructor() {
        this.name = 'parent';
        this.play = [1, 2, 3];
    }
}

class Child extends Parent {
    constructor() {
        super();
        this.type = 'child';
    }
}

以上就是Javascript中ES5和ES6的7种继承方式的详细讲解和示例,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript的ES5,ES6的7种继承详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Spring Bean创建和循环依赖

    Spring Bean创建和循环依赖的完整攻略 Spring框架提供了强大的依赖注入功能,可以通过配置文件或注解来创建和管理Bean。在某些情况下,可能会出现循环依赖的情况,即两个或多个Bean之间相互依赖,导致无法正常创建Bean的问题。以下是解决Spring Bean创建和循环依赖的完整攻略: 构造器注入:使用构造器注入可以解决循环依赖的问题。通过在构造…

    other 2023年10月15日
    00
  • 墨迹天气app怎么自定义频道?

    墨迹天气提供了非常丰富的天气信息,并且支持用户自定义频道。下面就让我来详细讲解“墨迹天气app怎么自定义频道”的完整攻略: 1. 打开墨迹天气app 首先,在手机上打开墨迹天气app。如果你还没有安装,你可以前往应用商店进行下载安装。 2. 进入“我的”界面 在墨迹天气app首页,点击右下角“我的”按钮,进入“我的”界面。 3. 进入“自定义频道”界面 在“…

    other 2023年6月25日
    00
  • pycharm配置文件有什么用? PyCharm导入导出配置文件的技巧

    PyCharm是一种流行的Python集成开发环境(IDE),可以用于开发各种Python项目。PyCharm有一个强大的配置框架,可以让用户对其进行高度定制。在本文中,我们将详细介绍PyCharm配置文件的作用以及如何导入导出配置文件。 PyCharm配置文件的作用 PyCharm配置文件是一组存储在本地计算机中的文件,它们记录了PyCharm的所有设置。…

    other 2023年6月25日
    00
  • golang基本语法

    以下是关于“Golang基本语法”的完整攻略: Golang简介 Golang是一种开源的编程语言,由Google开发。Golang具有高效、简洁、安全等点,适用于Web开发、编程、系统编程等领域。 Golang基本语法 以下是一些学习Golang基本语法的资料和示例: Golang官方文档 Golang官方文档是学习Golang的最权威的资料之一,包含了G…

    other 2023年5月9日
    00
  • JavaScript 继承详解(五)

    JavaScript 继承是面向对象编程中常见的概念,本篇文章主要介绍了以下五种继承方式:原型继承、借用构造函数继承、组合继承、寄生组合式继承、class继承。 原型继承 原型继承是指通过 prototype 对象的原型链进行继承。子类的 prototype 原型链指向了父类的实例,从而实现继承。示例如下: function Parent() { this.…

    other 2023年6月27日
    00
  • Xp系统联想T400笔记本蓝屏0xEA怎么办 Xp蓝屏提示ati2dvag.dll出错的解决方案

    Xp系统联想T400笔记本蓝屏0xEA怎么办? 问题描述 笔记本电脑在使用过程中突然出现蓝屏,而提示信息为“0xEA”。经查询,通常情况下是由于ATI显卡驱动程序错误导致的。 解决方案 更新显卡驱动程序 由于该问题与显卡驱动程序有关,所以第一步可以尝试更新显卡驱动程序。可以通过以下方式操作: 访问ATI官网或联想官网,下载最新的显卡驱动程序; 双击下载的驱动…

    other 2023年6月26日
    00
  • mirai框架qq机器人教程新版

    Mirai框架QQ机器人教程新版 Mirai框架是一款基于Java开发的QQ机器人框架,具有高性能、易扩展、开源等优点,广受开发者欢迎。随着Mirai框架的不断升级,本文介绍的是Mirai框架QQ机器人教程的新版。以下是具体的内容: Mirai框架的安装 Mirai框架的安装非常简单,只需要五个步骤: 安装Java环境。 下载最新版的Mirai框架。 解压M…

    其他 2023年3月29日
    00
  • iOS 14.2/iPadOS14.2 Beta4值得升级吗?iOS 14.2/iPadOS14.2 Beta4更新详解

    iOS 14.2/iPadOS 14.2 Beta 4 值得升级吗? 简介 iOS 14.2/iPadOS 14.2 Beta 4 是苹果公司最新发布的测试版本,旨在为iPhone和iPad用户提供更好的使用体验。在决定是否升级之前,我们需要考虑以下几个因素。 新功能和改进 iOS 14.2/iPadOS 14.2 Beta 4 带来了一些新功能和改进,这些…

    other 2023年7月27日
    00
合作推广
合作推广
分享本页
返回顶部