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

javascript原型链中如何实现继承

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

javascript原型链中如何实现继承

这篇文章将为大家详细讲解有关javascript原型链中如何实现继承,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

继承的几种方式:

① 使用构造函数实现继承

function Parent(){
  this.name = 'parent';
}
function Child(){
Parent.call(this); //在子类函数体里面执行父类的构造函数
this.type = 'child';//子类自己的属性
}

Parent.call(this),this即实例,使用this执行Parent方法,那么就用this.name = 'parent'把属性

挂载在了this(实例)上面,以此实现了继承。

缺点:以上只是让Child得到了Parent上的属性,Parent的原型链上的属性并未被继承。

② 使用原型链实现继承

function Parent(){
  this.name = 'parent';
}
function Child(){
  this.type = 'child';
}
Child.prototype = new Parent();

解释:Child.prototype === Chlid实例的__proto__ === Child实例的原型

所以当我们引用new Child().name时,Child上没有,然后寻找Child的原型child.__proto__Child.prototypenew Parent(),Parent的实例上就有name属性,所以Child实例就在原型链上找到了name属性,以此实现了继承。

缺点:可以看出,Child的所有实例,它们的原型都是同一个,即Parent的实例:

var a = new Child();
var b = new Child();
a.__proto === b.__proto__; //true

所以,当使用 a.name = 'a'重新给name赋值时,b.name也变成了'a',反之亦然。

用instanceof和constructor都无法确认实例到底是Child的还是Parent的。

③ 结合前两种取长补短

function Parent(){
  this.name = 'parent';
}
function Child(){
  Parent.call(this);
  this.type = 'child';
}
Child.prototype = new Parent();

缺点:在Child()里面用Parent.call(this);执行了一次Parent(),然后又使用Child.prototype = new Parent()执行了一次Parent()。

改进1:

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

缺点:用instanceof和constructor都无法确认实例到底是Child的还是Parent的。

原因: Child.prototype = Parent.prototype直接从Parent.prototype里面拿到constructor,即Parent。

改进2:

function Parent(){
  this.name = 'parent';
}
function Child(){
  Parent.call(this);
  this.type = 'child';
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;

画图说明吧:

var a = new Child();

javascript原型链中如何实现继承

所以这样写我们就构造出了原型链。

关于“javascript原型链中如何实现继承”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

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

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

javascript原型链中如何实现继承

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

下载Word文档

猜你喜欢

怎么在javascript中实现原型链继承

本篇文章给大家分享的是有关怎么在javascript中实现原型链继承,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、说明构造函数、原型与实例的关系,每个构造函数都有一个原型对
2023-06-15

原生Javascript如何实现继承

这篇文章将为大家详细讲解有关原生Javascript如何实现继承,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言最近在复习javascript的一些基础知识,为开启新的征程做准备。所以开始记录一些自己学
2023-06-20

JavaScript 原型链:对象继承的魔力

JavaScript 原型链是对象继承的一种强大机制,它允许对象访问和继承其他对象的属性和方法。本篇将深入探讨 JavaScript 原型链的原理和用法,并通过代码示例展示其威力。
JavaScript 原型链:对象继承的魔力
2024-02-06

javascript原型链继承的使用方法

这篇文章主要讲解了“javascript原型链继承的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript原型链继承的使用方法”吧!说明1、即使不自定义类型,也可以通过原
2023-06-20

如何分析Js继承与原型链

今天就跟大家聊聊有关如何分析Js继承与原型链,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。继承与原型链当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象(objec
2023-06-22

JavaScript 原型链揭秘:了解对象的继承和原型

JavaScript 原型链是一种继承机制,它允许对象从其原型对象继承属性和方法。通过原型链,对象可以访问其原型对象的所有属性和方法,甚至包括那些它自己没有定义的属性和方法。
JavaScript 原型链揭秘:了解对象的继承和原型
2024-02-06

JavaScript 原型链:解开对象继承的奥秘

JavaScript 原型链是理解对象继承的关键概念,它提供了一种在对象之间共享属性和方法的方式,从而实现代码的可重用性和维护性。
JavaScript 原型链:解开对象继承的奥秘
2024-02-06

JavaScript原型链继承的概念以及原理分享

本篇文章和大家了解一下JavaScript原型链继承的概念以及原理分享。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一、原型链所谓原型链就是指通过原型链继承,在原型之间建立起来的链式结构被称为原型链。当查找对象的某个属性
2023-06-14

JavaScript原型与继承实例分析

今天小编给大家分享一下JavaScript原型与继承实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先我们需要知道的
2023-06-27

JavaScript如何实现继承的

JavaScript是一种面向对象的语言,而继承是面向对象编程的一个重要特性。在JavaScript中,继承的实现方式有多种,本文将介绍其中较为常见的几种方法。一、原型链继承原型链继承是JavaScript中最基本的一种继承方式,也是最常用的一种。通过原型链继承,可以实现子类继承父类的属性和方法。原型链继承的实现方法如下:```function Parent(name) {
2023-05-14

JavaScript 原型链入门:了解对象继承的基础

JavaScript 中的原型链是对象继承的基础,通过原型链,对象可以访问和继承父对象的方法和属性。在本文中,我们将深入探讨原型链的工作原理、如何使用它来实现对象继承以及如何在 JavaScript 中使用它来创建复杂的应用程序。
JavaScript 原型链入门:了解对象继承的基础
2024-02-06

编程热搜

目录