原型链继承

news2024/11/18 1:30:22

 方式一:原型链继承

1.套路:

(1)定义父类型构造函数

(2)给父类型的原型添加方法

(3)定义子类型的构造函数

(4)创建父类型的对象赋值给子类型的原型

(5)将子类型原型的构造属性设置为子类型

(6)给子类型原型添加方法

(7)创建子类型的对象:可以调用父类型的方法、

2.关键:子类型的原型为父类型的一个实例对象

//父类型
function Supper(){
   this.supProp='Supper property'
}
Supper.prototype.showSupperProp=function(){
   console.log(this.subProp)
}
//子类型
function Sub(){
   this.subProp='Sub property'
}
//子类型的原型为父类型的一个实例对象
Sub.prototype=new Supper()
//让子类型的原型的constructor指向子类型
Sub.prototype.constructor=Sub;
Sub.prototype.showSubProp=function(){
   console.log(this.subProp)
}
var sub=new Sub()
sub.showSupperProp()
//sub.toString()
sub.showSubProp()

  方式二:借用构造函数继承(假的)

1.套路:

(1)定义父类型构造函数

(2)定义子类型构造函数

(3)在子类型构造函数中调用父类型构造

2.关键:在子类型构造函数中通过call()调用父类型构造函数

function Person(name,age){
  this.name=name;
  this.age=age;
}
function Student(name,age,price){
  Person.call(this,name,age)
  this.price=price
}
var p=new Student('Tom',18,1400)
console.log(p.name,p.age,p.price);//Tom 18 1400

方 式三:组合继承

原型链+借用构造函数的组合继承

1.利用原型链实现对父类型对象的方法继承

2.利用Call()借用父类型构建函数初始化相同属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot的家具商城管理系统

基于SpringBoot的家具商城管理系统的设计与实现【文末源码】 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 家具详情 通知公告 登录界面 管理员界面 摘要 一段关于基于…

Windows下安装PyTorch(GPU版本)

PyTorch环境配置及安装 初步机器学习,这里记录下一些学习经过,之后以便于自己查看,同时欢迎各位大佬点评,本节是机器计算的一个包的安装和简单验证。 1.流程 确定自己的硬件信息-确定电脑有英伟达(NVIDIA&#xff…

给视频批量添加背景图,轻松简单的操作方法

当我们需要给多个视频添加相同的背景图片时,一个一个地添加未免太过于繁琐和低效。幸运的是,我们可以使用固乔剪辑助手这款软件来实现批量添加背景图片的操作。下面就是详细的步骤指南。 首先,我们需要在浏览器搜索“固乔科技”,然…

面试官心声:个个都说会自动化,结果面试一问细节全露馅了

今年我们部门计划招聘几名自动化测试工程师,为此我进行了面试和培训,发现了一个让我感到担忧的趋势,许多候选人可以轻松地回答有关脚本编写、元素定位、框架API等问题。然而一问到实际项目,比如“如何从0开始搭建自动化体系”、“…

【C语言】用函数实现模块化程序设计

前言:如果把所有的程序代码都写在一个主函数(main函数)中,就会使主函数变得庞杂、头绪不清,使阅读和维护程序变得困难。此外,有时程序中要多次实现某一功能,如果重新编写实现此功能就会使得程序冗长、不精炼。 &#x…

day02_numpy_demo

Numpy Numpy的优势ndarray属性基本操作 ndarray.func() numpy.func()ndarray的运算:逻辑运算、统计运算、数组间运算合并、分割、IO操作、数据处理,不过这个一般使用的是pandas Numpy的优势 Numpy numerical数值化 python 数值计算的python库,用于快…

Node.js--》简易资金管理系统后台项目实战(后端)

今天开始使用 node vue3 ts搭建一个简易资金管理系统的前后端分离项目,因为前后端分离所以会分两个专栏分别讲解前端与后端的实现,后端项目文章讲解可参考:前端链接,我会在前后端的两类专栏的最后一篇文章中会将项目代码开源到我…

arduino 记录

​ 知识整理 Arduion U8G2简要说明 u8g2显示分为全页显示与分页显示和U8X8的无ram显示 全页显示需要单片机提供1024字节的ram,分页显示分为需要256字节和125字节的ram U8X8不需要ram,但不可画图,只能显示文字 全页使用 clearbuff senddbuff 分页…

javaweb中的转发与重定向

2023.10.22 在一个web应用中应该如何完成资源的跳转? 转发重定向 转发和重定向有什么区别? 转发是由服务器端进行的页面跳转,而重定向是由浏览器端进行的页面跳转。 ①代码上的区别: 转发: // 获取请求转发器对象…

Sublime Text forMac/Windows:高效代码编辑器的终极指南

你是否曾为寻找一款高效、强大且用户友好的代码编辑器而感到困扰?现在,让我们一起探索Sublime Text的魅力。Sublime Text是一款流行的代码编辑器,以其强大的功能和简洁的设计赢得了开发者的喜爱。本文将带你了解Sublime Text的各项特性&#…

1、VMware虚拟机及网络配置

一、VMware虚拟网络编辑器 1、选择NAT模式并配置子网 2、进入NAT设置,配置网关 3、宿主机网络适配器设置 二、创建虚拟机 在这里插入图片描述 三、开启虚拟机,安装操作系统 在该网段内配置静态ip,指定网关为前面NAT配置的网关地址…

游戏找不到msvcr100dll怎么办,分享5个有效修复方法

一、游戏找不到msvcr100dll会造成的困扰 在当今的数字时代,电子游戏已经成为了我们生活中不可或缺的一部分。它们为我们提供了娱乐和放松的机会,让我们能够在忙碌的生活中找到乐趣。然而,当我们在玩游戏时,可能会遇到一些技术问题…

【性能测试】MySQL慢查询原因/排查思路+SQL优化与性能定位思路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Mysql慢查询现象、…

十四天学会C++之第八天:文件操作

1. 文件的打开和关闭 文件操作的基本概念。打开文件:使用fstream库打开文件以供读写。关闭文件:确保文件在使用完毕后正确关闭。 文件的打开和关闭:C 文件操作入门 在C编程中,文件操作是一项重要的任务,可以读取和写…

Java日志系统之Log4j2

Log4j2介绍 Log4j2是Log4j的升级版,参考Logback的优秀设计并修复了一些问题。主要优点有: 异常处理,在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机制。性能提升&am…

Java高级编程----集合

集合 集合概述Collection接口List接口简介ArrayList集合Set接口简介Hash Set接口简介Map接口简介TreeMap集合Properties集合 集合概述 为了在程序中可以保存数目不确定的对象,Java提供了一系列特殊类,这些类可以存储任意类型的对象,并且长度…

使用java mail SMTPTransport发送邮箱,本地秒到,一上服务器就20-30s左右,生产环境直接发送失败。

一、代码 pom文件 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--pom.xml添加javax.mail的引用&#xff0c;或者项目引入…

【最短路径算法】一文掌握Dijkstra算法,详解与应用示例+代码

目录 1 Dijkstra算法 2 Dijkstra算法的步骤 3 Dijkstra算法python实现 4 Dijkstra算法应用示例详解 1 Dijkstra算法 Dijkstra算法&#xff08;迪杰斯特拉算法&#xff09;是一种用于在加权图中查找从一个起始节点到所有其他节点的最短路径的算法。该算法最初由荷兰计算机科…

JVM 基础篇:类加载器

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机功能来实现的&#xff0c;JVM屏蔽了与具体操作系统平台相关的信息&#xff0c;Java程序只需…

通讯录和内存动态管理

目录 (通讯录)动态增长版 实现效果 找单身狗 题目 源码 思路 三个内存函数的模拟实现 模拟实现strncpy 模拟实现strncat 模拟实现atoi (通讯录)动态增长版 该版本通讯录在原版的基础上增加了检查容量函数&#xff0c;实现了通讯录的动态…