JS实现继承的几种方式

一周一个Unity小游戏2D反弹球游戏 - 球反弹的方向 本文将实现当球在球板上反弹时,会根据球板移动的方向来给球施加反弹的力,例如当球板往左移动时反弹球,则球应向左上方反弹,若球板往右移动时反弹球,则球应向右上方反弹。 阅读详情

前言

JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?

JS继承的实现方式


既然要实现继承,那么首先我们得有一个父类,代码如下:
// 定义一个动物类
function Animal (name) {
  // 属性
  this.name = name || 'Animal';
  // 实例方法
  this.sleep = function(){
    console.log(this.name + '正在睡觉!');
  }
}
// 原型方法
Animal.prototype.eat = function(food) {
  console.log(this.name + '正在吃:' + food);
};

1、原型链继承
核心:将父类的实例作为子类的原型

function Cat(){ 
}
Cat.prototype = new Animal();
Cat.prototype.name = 'cat';

// Test Code
var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
console.log(cat instanceof Animal); //true 
console.log(cat instanceof Cat);//true

特点:
1、非常纯粹的继承关系,实例是子类的实例,也是父类的实例
2、父类新增原型方法/原型属性,子类都能访问到
3、简单,易于实现
缺点:
1、要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行不能放到构造器中

#参考# https://www.cnblogs.com/humin/p/4556820.html

【25届数字IC秋招总结】面试经验10——紫光同芯 25届数字ic面试记录——紫光同芯 阅读详情

相关推荐

基于ESP32的摩托车蓝牙对讲系统开发实践

蓝牙音频传输技术在现代通信中扮演着重要角色,其核心原理是通过无线射频实现数字音频信号的双向传输。在工程实践中,蓝牙HFP协议常用于语音通信场景,而ESP32等嵌入式平台因其低成本和高集成度成为DIY项目的理想选择。本项目通过ESP32-WROOM-32D开发板结合PCM5102 DAC和INMP441数字麦克风等模块,构建了一套摩托车骑行专用的蓝牙对讲系统。该系统特别针对高速移动环境下的风噪抑制和连接稳定性进行了优化,采用数字信号处理技术实现实时降噪,并通过I2S接口确保音频质量。这种方案不仅成本控制在30

weixin_33239721的博客 414

Js实现继承的6种方式

Js实现继承的6种方式: 1.原型链继承 2.借用构造函数继承 3.组合继承(经典继承) 4.原型式继承 方法一: 方法二:Object.create() 5.寄生式继承 6.寄生组合式继承 7.ES6、Class实现继承

wuliyouMaozhi的博客 2万+

在VSCode中使用LaTex+(grammarly语法检测,chatgpt翻译,Sumatra PDF 轻量级pdf阅读器)

整个文章分为以下几个内容,打 * 的是必须要安装的。

u011895157的博客 2万+

JS中的八种继承方法

详细讲解js中的八种继承方法,原型链继承、构造函数继承(经典继承)、组合面试、原型式继承、Object.create()、寄生式继承、寄生组合式继承、ES6类继承

weixin_70134200的博客 6645

从选型到阵列:基于ESP32-S3的智能硬件麦克风系统设计实战

本文详细介绍了基于ESP32-S3芯片设计智能硬件麦克风阵列的完整实战方案。从核心芯片选型、数字MEMS麦克风的参数解读与电路设计,到关键的声学结构密封、阵列布局策略,再到利用ESP-ADF框架构建音频处理流水线并集成回声消除、噪声抑制等算法,提供了从硬件到软件的全链路设计指南与避坑要点,旨在实现清晰、稳定的远场语音交互。

weixin_29173777的博客 266

FreeRTOS-Plus-CLI使用笔记

FreeRTOS-Plus-CLI使用笔记 一、简介 详细介绍可参考FreeRTOS-Plus-CLI官网地址入口 FreeRTOS+CLI(Command Line Interface, 命令行接口)提供了一种简单、小型、可扩展且RAM高效的方法,使FreeRTOS应用程序能够处理命令行输入。添加一条指令的步骤如下: 提供一个实现命令功能的函数 将命令映射到该功能函数 注册命令 运行命令解释器 命令行调试接口对于排查分析出现的问题提供了很好的接口,可以通过查看传感器信息判断传感器是否正常,可以查看内置

ApexYuan 6963

JS实现继承的6种方式

JS实现继承的6种方式

weixin_53953052的博客 791

研发工作量科学量化评估模型:从多维系数到等级落地指南

摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。

友莘居士的博客 1681

【笔记】JS实现继承的几种方式

JS实现继承的几种方式

weixin_44755080的博客 2688

分享一个N-MOS管和P-MOS管驱动应用实例

大家好,我是『芯知识学堂』的SingleYork,今天给大家分享一下MOS管驱动相关的知识。 MOS管在电路设计中是比较常见的,按照驱动方式来分的话,有两种,即:N-MOS管和P-MOS管。MOS管跟三极管的驱动方式有点类似,但又不完全相同,那么今天笔者将会给大家简单介绍一下N-MOS管和P-MOS管的工作原理,并结合自己实际的应用来给大家分享一下如何来驱动N-MOS管和P-MOS管。 首先,我们先来看一下N-MOS管和P-MOS管分别在电路中的电气符号: 咋一看上面两个电气符号,似乎非常的相似,可能让很

『芯知识学堂』SingleYork 的博客 3万+

【牛股启动线】副图指标使用技术说明,图文案例分享,通达信炒股指标

如上图,在紫色线在黑色虚线上时,在出现紫色柱线时,通常会出现强势拉升的行情​。柱线加长加上紫色线上扬,进场跟随做多抓强势行情,紫色柱线和紫色线同时做多持续则可以继续持股。如上图,副图指标【牛股启动线】,指标信号包括紫色线走势信号和紫色柱线信号,以及底部的四条虚线技术信号​,还有一条绿色的参考线,一条黑色的虚线两天分档线。如上图,参考买点,紫色柱线开始出现时进场买点,在上图标记的位置对应的就是进场买点​。紫色柱线加长+紫色线上扬,多头共振持股,行情继续拉升阶段,持股待涨或顺势​进场做多。

weixin_69760830的博客 1907

js继承的几种实现方式

js有几种经典的继承方式。比如原型链继承、构造函数继承、组合继承、寄生组合继承、ES6继承。让我们一一分析并实现。同时了解每种方案的优缺点。 文章目录1.原型链继承优点缺点2.构造函数继承优点缺点3.组合继承优点缺点4.寄生组合继承优点缺点5.ES6继承 其实js的继承本质上是通过原型链机制实现的扩展。不管是哪种继承方式,都是通过操作父类原型链和子类原型链形成关联关系实现的。只是不同实现中需要考虑不同的问题。在实际项目开发中,建议尽可能使用ES6的class extends实现。其他实现方式主要是理解背后的

A-Select ° 3130

【机器学习】一文搞懂算法模型之:Transformer

必会算法模型之:Transformer

商务合作 | 面试培训 | 职场规划 ==>主页扫码 5608

JavaScript实现继承的几种方式

JavaScript实现继承的几种方式 原型链继承 function Father(){ this.names = ['a','b']; } Father.prototype.getName = function(){ console.log(this.names); } function Child(){} Child.prototype = new Father(); /...

codezha的博客 178

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

js在html有几种存在方式,javascript实现继承有几种方式?

javascript实现继承的方式有哪些?下面本篇文章就来给大家介绍一下javascript实现继承的几种方式,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。实现继承的方式一:原型链实现方法:A原型的实例是B原型的属性不要忘记原型链中默认存在Object子类添加方法或重写超类方法要放在替换原型语句之后通过原型链实现继承后,不能使用对象字面量的方式创建方法和属性,因为会重写原型链通过...

weixin_32224199的博客 126

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

在JavaScript中实现继承的几种方式

文章目录前言继承的几种方式构造方式继承进行测试结论修改原型继承进行测试结论(构造函数+修改原型)组合继承进行测试结论基于组合继承的优化测试结论总结 前言 JavaScript作为一门面向对象语言,自然有封装、继承、多态的特性,在其他面向对象语言中(如Java、python等),通过类来实现继承,而JavaScript中没有类的概念,于是JavaScript的继承方式区别于传统的继承方式,且有多种实现 继承的几种方式 以下为JavaScript中常见实现继承的方式,不代表全部。 构造方式继承 functi

weixin_44786791的博客 1511

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JavaScript(JS) 中实现继承的几种方式

将父类的实例作为子类的原型,他的特点是实例是子类的实例也是父类的实例,父类新增的原型方法/属性,子类都能够访问,并且原型链继承简单易于实现,缺点是来自原型对象的所有属性被所有实例共享,无法实现多继承,无法向父类构造函数传参。为父类实例添加新特性,作为子类实例返回,实例继承的特点是不限制调用方法,不管是 new 子类()还是子类()返回的对象具有相同的效果,缺点是实例是父类的实例,不是子类的实例,不支持多继承。通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用。

Yongqiang Chen的博客 636

JavaScript(js)实现继承的几种方式

1.原型链继承 核心:将父类的实例做为子类的原型对象 //动物类 function Animal(name,sex) { this.name = name || 'Animal'; this.sex = sex || '未知'; this.sleep = function () { console.log(this.name + "在睡觉!"); } } //添加原型属性和方法 Anima

weixin_47863547的博客 432

简单了解一下js实现继承的几种方式

js实现继承 文章目录js实现继承1.==原型继承==(B.prototype=new A)把A的实例赋值给B的原型,那么通过B创建的实例,可以调用(继承)A的实例的私有属性和公有属性;这种继承方式就是原型继承原型继承 继承了私有属性和公有属性2 ==call继承==3 ==中间类继承==4 ==寄生组合继承== 1.原型继承(B.prototype=new A) 把A的实例赋值给B的原型,那么通...

weixin_44592971的博客 303

JS 实现继承的几种方式

继承作为面向对象语言的三大特性之一,可以在不影响父类对象实现的情况下,使得子类对象具有父类对象的特性;同时还能再不影响父类对象行为的情况下扩展子类对象独有的特性,为编码带来了极大的便利。 下面我们就来看看 JavaScript 中都有哪些实现继承的方法。 原型链继承 原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。 原型链继承的主要思想是:重写子类的pr.

weixin_54777359的博客 226

JavaScript 之 实现继承的几种方式

总结了js实现继承的主要方式,并做了较为详细的分析与对比,希望对新手的理解有所帮助。

Leo_Franklin的博客 652

JavaScript实现继承的几种方式总结

虽然在ES6中有了继承,使用extends关键字就能实现。本篇讲的不是这种,而是ES6之前的几种实现继承的方式。 (一)原型链 ECMAScript中将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。(不理解原型链的童鞋们可以翻阅一下我之前的博客,里面有详细的说明) 实现原型链的一种基本模式 function SuperType(){ t...

qq_33699819的博客 199

JavaScript实现继承的几种方式详解(代码可本地运行便于理解)

JavaScript实现继承的几种方式 1.原型链继承 2.利用函数对象call和apply实现继承(call和apply只是传参格式上有区别) 3.混合继承(call、apply和原型继承混合) 4.ES6 Class关键字继承

小猿同学628的博客 311

js实现继承的几种方式

js实现继承的几种方式_徕胖的博客-优快云博客_js继承

qq_45633169的博客 1584
上一篇: 前端设计总结
下一篇: 总结一下jQuery操作元素节点的方法(创建、选择、插入节点)
It_sharp
博客等级 码龄10年 51粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值