JavaScript继承
文章平均质量分 80
JavaScript继承
吉帅振的网络日志
前端开发
展开
-
【JS继承】JS继承之ES6 Class 继承
JS是一种基于对象的语言,要实现面向对象,写法跟传统的面向对象有很大的差异。ES6引入了Class语法糖,使得JS的继承更像面向对象语言的写法。此篇博客,分为:基本介绍、Vue使用案例Class可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多;1234代码定义了一个Son 类,该类通过extends关键字,继承了Father类的所有属性和方法,但是由于没有部署任何代码,所以这两个类完全一样,等于复制了一个Father类。12345678910 construct转载 2022-06-23 13:21:27 · 747 阅读 · 2 评论 -
【JS继承】JS继承之寄生组合式继承
寄生组合式继承定义:所谓寄生组合式继承,即通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。其背后的基本思路是:不必为了指定子类型的原型而调用超类型的构造函数,我们所需要的无非就是超类型原型的一个副本而已。本质上,就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。一、定义父类型二、定义继承方法三、定义子类并实现继承四、输出结果总结:寄生组合式继承的高效体现在它只调用了一次Person构造函数,并且因此避免了在Pan.prototype上面创建不必要的、转载 2022-06-22 14:49:58 · 1246 阅读 · 5 评论 -
【JS继承】JS继承之寄生式继承
一、寄生式继承寄生式继承的思路与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,后再像真的是它做了所有工作一样返回对象。二、createAnother()函数createAnother()函数接收了一个参数,也就是将要作为新对象基础的对象。然后,把这个对象(original)传递给 object()函数,将返回的结果赋值给 clone。再为 clone 对象 添加一个新方法 sayHi(),后返回 clone 对象。可以像下面这样来使用 createA原创 2022-06-21 09:16:55 · 699 阅读 · 1 评论 -
【JS继承】JS继承之原型式继承
一、原型式继承原型式继承并没有使用严格意义上的构造函数,是通过借助原型基于已有的对象创建新对象,同时还不必创建自定义类型。使用原型式继承的主要思路:分析可知:在Object函数的内部先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的一个新实例。 结合例1,并在其下方添加如下代码1:克洛克福德主张这种原型式继承,要求你必须有一个对象可以作为另一个对象的基础。在代码1中,可以作为另一个对象。的基础的是person对象,于是我们可以把它传入到object原创 2022-06-20 11:00:07 · 618 阅读 · 0 评论 -
【JS继承】JS继承之组合继承
一、组合继承组合继承有时候也叫伪经典继承,指的是将原型链和借用构造函数技术组合到一块,从而发挥二者之长的一种继承模式,其背后的思路是使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样既通过在原型上定义方法实现了函数复用,又能保证每个实例都有它的自己的属性。二、基本思想supertype构造函数定义了两个属性,name和colors。supertype的原型定义了一个方法sayname()。subtype构造函数调用supertype时传入了name参数,紧接着又定义了原创 2022-06-17 10:31:04 · 1489 阅读 · 0 评论 -
【JS继承】JS继承之构造函数继承
一、构造函数js中定义一个function,当使用new关键字调用这个function的时候,这个function成为一个构造函数。如下所示:二、new关键字当使用new关键字调用构造函数生成一个对象实例时,js做出的关键处理如下:1.创建一个新的对象,将构造函数内this指针指向新建对象。2.将新建对象的__proto__属性设置成构造函数的prototype属性,确保新建对象是构造函数实例。3.运行一遍构造函数,如果构造函数本身需要返回一个object或者array对象,则舍去新创建对象原创 2022-06-16 10:20:56 · 1446 阅读 · 0 评论 -
【JS继承】什么是JS继承?
一、继承继承(英语:inheritance)是面向对象软件技术当中的一个概念。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。二、构造函数在聊JS继承方式之前,我们需要做一点准备工作,首先来聊一聊构造函数。在js中,构造函数其实和函数时一样的,写法都是函数的定义方式上面这个函数我们既可以看成是普通函数,也可以看成是一个对象的构造函数。普通函数就原创 2022-06-13 11:01:15 · 1737 阅读 · 0 评论 -
【JS继承】常见的7种继承方式
一、原型式继承核心:将父类的实例作为子类的原型。优点:父类方法可以复用。缺点:父类的引用属性会被所有子类实例共享子类构建实例时不能向父类传递参数二、构造函数继承核心:将父类构造函数的内容复制给了子类的构造函数。这是所有继承中唯一一个不涉及到prototype的继承。优点:和原型链继承完全反过来父类的引用属性不会被共享子类构建实例时可以向父类传递参数缺点:父类的方法不能复用,子类实例的方法每次都是单独创建的。三、组合继承核心:原型式继承和构造函数继承的组合,兼具了二者的优点。优点:父类的方法原创 2022-06-14 09:34:50 · 4658 阅读 · 5 评论 -
【JS继承】JS继承之原型链继承
1.函数所谓 函数 也就是 函数 Personal 其本身,也叫作构造函数 ,当一个函数被创建的同时,也会为其创建一个 prototype 属性,而这个属性,就是用来指向 函数原型,的我们可以把 prototype 理解为 Personal的一个属性,保存着函数原型的引用。2.函数实例函数实例 很好理解,就是上面代码中通过 new Personal() 得到的实例p,于此同时函数实例 p 内部会包含一个指向 函数原型的指针[[Prototype]],因此我们通过 p 可以去调用 函数原型 上的属性和方法原创 2022-06-15 09:56:21 · 1170 阅读 · 0 评论
分享