es5中的类和静态方法、继承详解

1、关于es5

es5中的类

//   1、最简单的类function Person() {this.name = "姓名";this.age = 20;}let p = new Person();console.log(p.name);//  2、构造函数和原型链里面增加方法function Person() {this.name = "姓名"; // 属性this.age = 20;this.run = function () {// 实例方法 通过new实例化之后才可以调用console.log(this.name + "run");};}// 原型链上面的属性会被多个实例共享 构造函数不会Person.prototype.sex = "性别";Person.prototype.work = function () {console.log(this.name + "work");};let p2 = new Person();p2.run();Person.work;

静态方法

      // 类里面的静态方法Person.getInfo = function () {console.log("我是静态方法");};// 调用静态方法Person.getInfo();

继承

(1)对象冒充实现继承

function Person() {this.name = "姓名"; // 属性this.age = 20;this.run = function () {// 实例方法 通过new实例化之后才可以调用console.log(this.name + "run");};}Person.prototype.sex = "性别";Person.prototype.work = function () {console.log(this.name + "work");};// Web类 继承Person类 原型链 + 对象冒充的组合继承模式function Web() {Person.call(this); // 对象冒充实现继承}var w = new Web();w.run(); // 对象冒充可以继承构造函数里面的属性和方法 但是没法继承原型链上面的属性和方法w.work();

(2) 原型链实现继承 可以继承构造函数里面的属性和方法 也可以继承原型链上的属性和方法

      function Web() {}Web.prototype = new Person();var w = new Web();w.work();// 原型链实现继承存在的问题:实例化子类的时候没法给父类传参function Pro(name, age) {this.name = name;this.age = age;this.run = function () {// 实例方法 通过new实例化之后才可以调用console.log(this.name + "run");};}Pro.prototype.sex = "性别";Pro.prototype.work = function () {console.log(this.name + "work");};function Wpro(name, age) {}Wpro.prototype = new Pro();var w = new Wpro("我", 18);w.run();

(3)原型链 + 构造函数 的 组合继承模式

      function Merge(name, age) {this.name = name;this.age = age;this.run = function () {console.log(this.name + "run");};}Merge.prototype.sex = "性别";Merge.prototype.work = function () {console.log(this.name + "work");};function Wmerge(name, age) {Merge.call(this, name, age); // 对象冒充继承 可以继承构造函数里面的属性和方法 实例化子类可以给父类传参}

组合继承也可以写为   Wmerge.prototype = Merge.prototype

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

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

相关文章

Large Language Models for Test-Free Fault Localization

基本信息 这是24年2月发表在ICSE 24会议(CCF A)的一篇文章,作者团队来自美国卡内基梅隆大学。 博客创建者 武松 作者 Aidan Z.H. Yang,Claire Le Goues,Ruben Martins,Vincent J. Hellendoorn 标签 …

自制英语听力视频 5.1

breaking news:突发新闻 judge:法官 hush money:封口费 trial:审判 violated:违反 gag order:禁言令 the judge has ruled the former president has violated a gag order:法官裁定前总统违反了禁言…

启明云端2.4寸屏+ESP32-S3+小型智能调速电动家用除草机案例 触控三档调速,能显示电压故障码

今天给大家分享个启明云端2.4寸屏ESP32-S3小型智能调速电动家用除草机案例,国外有草坪文化,这个机器能智能触控三档调速,带屏能显示电压故障码,数显档位(3档最大),触控屏,长按3秒就能…

使用 langchain 连接 通义千问 并用 fastApi 开放接口

安装 langchain 方法 https://www.cnblogs.com/hailexuexi/p/18087602 安装 fastapi fastapi 是一个用于构建高性能 Web 应用的 Python 框架,它提供了简洁、高效的 API 开发体验。 pip install fastapi 安装 uvicorn uvicorn 是一个用于运行 FastAPI 应用的服务…

C语言学习/复习37--进阶总结与题目练习

一、题目练习 1. 循环与无符号char的取值范围 注意事项:0~255 -128~127 char类的取值范围看做循环图 2.ASCLL值与循环 3.按位操作与bit位 4 .结构体的大小 注意事项:结构体嵌套结构体的大小计算 5.循环条件 6.数据类型与原反补码 7.指针访问字符串数…

react18子组件设置接收默认值和值类型验证

父组件传值 import ChildCom from ./components/ChildCom export default function Person {return(<div><ChildCom name"alan-ben" age{18} score{[98, 97, 100]} /></div>) } 子组件接收并验证类型 import React from react import PropTypes…

CentOS-Stream-9配置网络和web控制台cockpit

vim /etc/NetworkManager/system-connections/ens33.nmconnection&#xff0c;修改autoconnectiontrue自动连接网络&#xff0c;可以自动获取IP地址&#xff0c;或者设置固定IP地址&#xff0c;在[ipv4]下面编辑methodmanual和address1192.168.4.111/24,192.168.4.1和dns223.5.…

商城系统推荐,如何找到一款可靠的商城系统?

如今&#xff0c;电商系统成为商家必不可少的营销工具&#xff0c;其系统在金融、外贸、零售等行业领域应用广泛。那么&#xff0c;作为初试水的企业又没有挑选电商系统的经验&#xff0c;如何找到拥有全功能、全渠道、可靠的网上商城系统呢&#xff1f; 我们可以先按电商系统…

【python】给函数参数和返回值标注类型

目录 &#xff08;1&#xff09;类型标注进化历史 从Python 3.0开始的类型标注 从Python 3.5开始的类型标注库 typing &#xff08;2&#xff09;更细化的类型标注 1.返回一个列表&#xff0c;且列表的元素类型是指定的 2.返回字典类型&#xff0c;键和值都是指定类型 3…

【Vue 2.x】学习vue之三路由

文章目录 Vue三路由第十章1、vue中的路由vue的应用分为a、多页面应用b、单页面应用 2、路由的基本应用1、基础2、使用3、加载 3、vue组件的分类1、普通组件2、路由组件 4、路由的嵌套5、路由传递Query参数1、拼接参数传递2、路由传递对象 6、简化路由1、命名路由 7、parms传递参…

java钉钉微信qq扫码登录

概述 第三方接口其实比较简单&#xff0c;按照文档来操作即可&#xff0c;代码也就那点&#xff0c;最费时间的反而是在对接系统的账号的申请上&#xff0c;不建议个人申请很麻烦&#xff0c;还是让公司运维申请企业账号。 作为一名合格的开人人员&#xff0c;不仅仅是把第三…

力扣82-链表、迭代 的思考

题目解读 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 两个示范 思考 返回链表&#xff1a;返回更新链表后的头结点&#xff1b; 更新链表&#xff1a;判断重复元素&#xff0c;改变指针…

centos7 宝塔php7安装mongodb扩展

一、下载、解压源码 下载地址&#xff1a;https://pecl.php.net/package/mongodb 1 2 wget -c https://pecl.php.net/get/mongodb-1.5.3.tgz tar -zxvf mongodb-1.5.3.tgz 二、编译安装源码 1 2 3 4 cd mongodb-1.5.3 /www/server/php/70/bin/phpize ./configure --with-p…

Day56|动态规划part16:583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

583. 两个字符串的删除操作 我的方法&#xff0c;先求出两者的最长公共子序列长度&#xff0c;再用两个字符串的长度相减就是两者分别要做操作的步数&#xff1a; class Solution {public int minDistance(String word1, String word2) {int[][] dp new int[word1.length() …

模型剪枝-Network Slimming算法分析

代码见文末 论文地址&#xff1a;Learning Efficient Convolutional Networks through Network Slimming ICCV 2017 Open Access Repository 1.概述 由于边缘设备的限制&#xff0c;在模型的部署中经常受到模型大小、运行内存、计算量的限制。之前的方法要么只能解决其中一个…

设计模式之模板模式TemplatePattern(五)

一、模板模式介绍 模板方法模式&#xff08;Template Method Pattern&#xff09;&#xff0c;又叫模板模式&#xff08;Template Pattern&#xff09;&#xff0c; 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现&#xff0c;但可以成为典型类中…

Noisy:一款功能强大的DNS和HTTPS网络流量噪声生成工具

关于Noisy Noisy是一款功能强大的DNS和HTTP/S网络流量噪音生成工具&#xff0c;该工具基于Python开发&#xff0c;可以帮助广大研究人员在进行常规网络浏览时&#xff0c;在后台生成随机的HTTP/DNS网络流量噪声&#xff0c;并以此来提升网络通信数据的安全性和隐蔽性。 支持的…

第7篇:创建Nios II工程之控制LED<二>

Q&#xff1a;上一期我们完成了Quartus硬件工程部分&#xff0c;本期我们创建Nios II软件工程这部分。 A&#xff1a;创建完BSP和Nios II Application之后&#xff0c;在source文件main.c中添加LED控制代码&#xff1a;system.h头文件包含了Platform Designer系统中IP的硬件信…

【C语言】文件操作(万字解读超详细解析)

最好的时光&#xff0c;在路上;最好的生活&#xff0c;在别处。独自上路去看看这个世界&#xff0c;你终将与最好的自己相遇。&#x1f493;&#x1f493;&#x1f493; 目录 • ✨说在前面 &#x1f34b;知识点一&#xff1a;什么是文件&#xff1f; • &#x1f330;1.程序…

【分布式通信】NPKit,NCCL的Profiling工具

NPKit介绍 NPKit (Networking Profiling Kit) is a profiling framework designed for popular collective communication libraries (CCLs), including Microsoft MSCCL, NVIDIA NCCL and AMD RCCL. It enables users to insert customized profiling events into different C…