我的编程空间,编程开发者的网络收藏夹
学习永远不晚

es6继承和es5继承有什么区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

es6继承和es5继承有什么区别

这篇文章给大家分享的是有关es6继承和es5继承有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

es5和es6继承的区别: ES5的继承是通过原型或构造函数机制实现的;它先创建子类,再实例化父类并添加到子类this中。 ES6先创建父类,再实例化子集中通过调用super方法访问父级后,再通过修改this实现继承。

本教程操作环境:windows7系统、ECMAScript 5&&ECMAScript 6版、Dell G3电脑。

es6继承和es5继承的区别

  • ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this)).

  • ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。

  • ES5的继承是通过原型或构造函数机制来实现。

  • ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。

注意super关键字指代父类的实例,即父类的this对象。

注意:在子类构造函数中,调用super后,才可使用this关键字,否则报错。

1、在es5中的继承:

	function parent(a,b){
	    this a = a;
	    this b = b;
	}
	function child(c){
	    this c = c
	};

通过子集去继承父级:

parent.call(child,1,2)

而去看call的底层方法可知,继承的过程是通过prototype属性

child.prototype = new parent(1,2);

由此可知,ES5继承的实质是先创建了子类元素child的的实例对象,然后再把父类元素parent的原型对象中的属性赋值给子类元素child的实例对象里面,从而实现继承

2、ES6中的继承

在传统JS中,生成对象是通过创建构造函数,然后定义生成对象

function parent(a,b){
    this.a = a;
    this.b = b;
}

然后通过prototype增加对应所需方法或属性

parent.prototype.methods = function(){
    return 'this is test methods';
}
parent.prototype.attr = 'this is test attr‘;

而ES6中引入了类的概念,也就是class。通过关键词class去定义对象。

class是个关键词,语言糖,这样能更清晰的读懂所创建的对象,

通过属性constructor来接收控制方法传入的参数,如果不写这个属性,默认是没有参数的

class parent{
    curstructor(a,b){
        this.a = a;
        this.b = b;
    }
}

ES6中的继承是基于class类之间继承的。通过关键词extends实现。

通过super实例化调用父类

	class parent{
	  constructor(a,b){
	    this.a = a;
	    this.b = b;
	  }
	  parentMethods(){
	    return this.a + this.b
	  }
	}
	class child extends parent{
	  constructor(a,b,c){
	    super(a,b);
	    this.c = c;
	  }
	  childMethods(){
	    return this.c + ',' + super.parentMethods()
	  }
	}
	const point = new child(1,2,3);
	alert(point.childMethods());

上面的代码,是一套简单的ES6父子类继承。

相信已经看出来了,虽明显的区别就是在于ES6中,激活父组件的是super方法,而不是新建实例化,也就是说,父类的实例对象是先创建出来的,调用后,再去修改子类的构造函数中的this完善原型对象。

总结:

ES5和ES6继承最大的区别就是在于:

  • ES5先创建子类,在实例化父类并添加到子类this中

  • ES6先创建父类,在实例化子集中通过调用super方法访问父级后,在通过修改this实现继承

感谢各位的阅读!关于“es6继承和es5继承有什么区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

es6继承和es5继承有什么区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php中类继承与接口继承的区别是什么

在PHP中,类继承与接口继承的区别是:PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,而接口支持多继承,也就是接口可以继承一个或者多个接口。
2015-02-22

php中类继承与接口继承的区别是什么

正文类继承和接口继承是PHP中扩展和重用代码的不同机制。类继承创建子类,继承父类的属性和方法。接口继承定义行为契约,类可以实现它们。关键差异在于可见性(类继承仅继承公共和受保护成员)、职责(类继承扩展功能,接口继承定义行为)、代码重用(类继承自动继承,接口继承实现契约)。使用类继承时,子类必须遵循父类实现,而使用接口继承时,类可以更自由地实现行为。PHP不支持多重类继承,但支持多重接口继承。选择哪种机制取决于需求,例如代码重用、一致性和灵活性。
php中类继承与接口继承的区别是什么
2024-04-25

php中类继承与接口继承的区别有哪些

今天小编给大家分享一下php中类继承与接口继承的区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在PHP中,类继承与
2023-06-29

es6继承的原理是什么

ES6继承的原理是通过使用`class`关键字和`extends`关键字来创建子类,并通过`super`关键字调用父类的构造函数和方法。ES6继承使用了基于原型的继承机制。当一个子类继承一个父类时,子类会创建一个新的原型对象,并将父类的原型
2023-10-09

es6中用什么实现继承

es6中用class和extends关键字来实现继承。ES6中引入了class关键字来声明类, 而class(类)可通过extends关键字实现继承,让子类继承父类的属性和方法,语法“class 父类名{...} class 子类名 extends 父类名{...};”。
2023-05-14

java派生和继承的区别有哪些

Java中的派生和继承实际上指的是同一种概念,即通过使用extends关键字,一个类可以派生出另一个类,被派生出的类称为子类,派生出子类的类称为父类或超类。因此,派生和继承在Java中没有实质上的区别。在继承中,子类会继承父类的属性和方法,
2023-09-08

VB.NET继承有什么用

这篇文章主要介绍了VB.NET继承有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。现实生活中子女继承父母的产业,那是必然的,在编程中我们也常常用子类继承父类的特性,VB
2023-06-17

javascript继承方法有什么

本篇内容介绍了“javascript继承方法有什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javascript继承方法有:1、使用ca
2023-06-14

python继承有什么好处

这篇文章主要讲解了“python继承有什么好处”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python继承有什么好处”吧!说明1、子类获得了父类的所有功能。因为Animial实现了run(
2023-06-20

C++私有继承是什么

本篇内容介绍了“C++私有继承是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.私有继承通过私有继承,我们可以实现一种has-a的关系
2023-06-29

php中继承类和实现接口的区别是什么

php中继承类和实现接口的区别:1、PHP继承属于单继承,保证了单一性,但不够灵活,而实现接口就是对单一继承的补充;2、实现接口可以在不破坏层级关系的前提下,对某个类功能扩展。
2017-08-21

java继承与聚合的区别有哪些

Java中的继承和聚合都是实现代码重用的方式,但它们有一些区别。继承:1. 继承是通过创建一个类来继承另一个类的属性和方法。2. 子类继承了父类的所有非私有属性和方法。3. 继承是一种"is-a"关系,子类是父类的一种特殊类型。4. 子类可
2023-09-08

es6实现继承的关键字是什么

本篇内容主要讲解“es6实现继承的关键字是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6实现继承的关键字是什么”吧!es6中用class和extends关键字来实现继承。ES6中引入了
2023-07-05

继承语法。有什么不同?

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《继承语法。有什么不同?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是
继承语法。有什么不同?
2024-04-05

编程热搜

目录