class 类

【基础认知】

1、构造器中的this指向——类的实例对象

2、类中的构造器不是必须写的,要对实例进行一些初始化的操作,如添加指定属性时才写。

3、如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super时必须要调用的。

4、类中锁定的方法,都是放在了类的原型对象上,供实例去使用

class类的基础使用

(静态属性,只能构造函数访问)

(公有属性,写在构造函数.prototype)

  (实例属性,定义在实例对象this上的属性)

    // 手机// 实例成员只能通过实例化对象来访问// function Phone(brand, price) {//   this.brand = brand//   this.price = price// }// 添加方法// Phone.prototype.call = function () {//   console.log('我可以打电话!!')// }// 实例化对象// let Huawei = new Phone('华为', 5999);// Huawei.call();// console.log(Huawei);class Phone {// 构造方法 名字不能修改constructor(brand, prive) {this.brand = brand;this.price = prive;}// 方法必须使用该语法,不能使用ES5的对象完整形式call() {console.log('我可以打电话!!!')}}let onePlus = new Phone('1+', 1999)onePlus.call()console.log(onePlus)

class静态成员

    function Phone() {}// 静态成员,属于类不属于实例对象// 静态成员只能通过构造函数来访问Phone.name = '手机'Phone.change = function () {console.log('我可以改变世界')}Phone.prototype.size = '5.5inch'let nokia = new Phone()console.log(nokia.size)//5.5inchconsole.log(nokia.name)//  undefinednokia.change()// 报错说不是一个函数class Phone1 {// 静态属性static name = '手机';static change() {console.log('我可以改变世界')}}let aaa = new Phone1();console.log(Phone1.name)//手机console.log(aaa.name)// undefined

构造函数继承

    // 手机function Phone(brand, price) {this.brand = brandthis.price = price}Phone.prototype.call = function () {console.log('我可以打电话')}// 智能手机function SmartPhone(brand, price, color, size) {Phone.call(this, brand, price);this.color = colorthis.size = size}// 设置子集构造函数的原型SmartPhone.prototype = new Phone;SmartPhone.prototype.constructor = SmartPhone;// 声明子类的方法SmartPhone.prototype.photo = function () {console.log('我可以拍照')}SmartPhone.prototype.playGame = function () {console.log('我可以玩游戏')}const chuizi = new SmartPhone('锤子', 2499, '黑色', '5.5inch');console.log(chuizi)chuizi.photo()chuizi.playGame()

类的函数继承

    // 手机class Phone {constructor(brand, price) {this.brand = brand;this.price = price;}call() {console.log('我可以电话')}}// 智能手机class SmartPhone extends Phone {constructor(brand, price, color, size) {//super之前调用this会报错super(brand, price);this.color = color;this.size = size;}photo() {console.log('我可以拍照')}palyGame() {console.log('我可以玩游戏')}}let chuizi = new SmartPhone('锤子', 2999, '黑色', '5.5inch')console.log(chuizi)chuizi.call()
//容易出错的地方 忘记写extends, 构造函数中的形参,  super()   

super 这个关键字,既可以当作函数使用,也可以当作对象使用。在这两种情况下,它的用法完全不同。

函数:
子类B的构造函数之中的super(),代表调用父类的构造函数。 super虽然代表了父类A的构造函数,但是返回的是子类B的实例,即super内部的this指的是B,因此super()在这里相当于A.prototype.constructor.call(this)。
对象:
在普通方法中,指向父类的原型对象;在静态方法中,指向父类。由于super指向父类的原型对象,所以定义在父类实例上的方法或属性,是无法通过super调用的。
class 作为构造函数的语法糖,同时有 prototype属性和__proto__属性,因此同时存在两条继承链。

类的get 和set

    // get 和 setclass Phone {get price() {console.log('价格属性被读取了');return 'iloveyou'}set prive(newVal) {// 必须要设置一个参数,不然报错console.log('价格属性被修改了')}}// 实例化对象let s = new Phone();// console.log(s.price)s.prive = 'free'// 类似于vue的watch和computed

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

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

相关文章

Azure语音合成再添新声音,“风格迁移”技术为不同音色实现多情感演绎

微软Azure Neural TTS(神经网络版文本转语音)新增五种声音模型,让我们再次体会到了“风格迁移”技术对AI语音模型多情感多风格的强大支持。 此次更新的五个美式英语声音模型,包括青春甜美的Jane、低沉温和的Nancy、随性且精力充沛…

基于 Observable 构建前端防腐策略

简介:To B 业务的生命周期与迭代通常会持续多年,随着产品的迭代与演进,以接口调用为核心的前后端关系会变得非常复杂。在多年迭代后,接口的任何一处修改都可能给产品带来难以预计的问题。在这种情况下,构建更稳健的前端…

动态卡片:富媒体内容井喷式增长下,新一代移动端动态研发的模式

简介:「蚂蚁动态卡片」新品发布会全程回顾 在 iOS 和 Android 系统近期推送的更迭版本中,系统环境已经逐渐发展出了将部分内容和服务前置化展示的趋势。 同时,伴随着富媒体内容井喷式增长以及内容的多样化、年轻化,一款移动应用…

Windows 上创建的文件,上传到 Linux 服务器,文件名乱码?

作者 | 刘光录来源 | TIAP先来说一下问题,在 Windows 下创建的一系列文件,上传到 Linux 服务器后,出现文件名乱码,导致文件无法读取的情况。事情的起因是这样的...最近有这样一个需求:在Java Web工程中读取本地某一个文…

阿里云成为首个通过“虚拟化云平台性能测试(大规模)”的云厂商

简介:2021年7月27日,在可信云大会上,中国信息通信研究院发布了《虚拟化云平台性能评估方法》,同时,宣布了阿里云成为首个通过“虚拟化云平台性能测试(大规模)”的云厂商,并获得“202…

阿里云神龙团队拿下TPCx-BB排名第一的背后技术

简介:阿里云自主研发的神龙大数据加速引擎获得了TPCx-BB SF3000世界排名第一的成绩。 一 背景介绍 近日,TPC Benchmark Express-BigBench(简称TPCx-BB)公布了最新的世界排名,阿里云自主研发的神龙大数据加速引擎获得了TPCx-BB SF3000排名第…

从中国移动财报透视:什么在支撑移动云发展韧性?

8 月 11 日,中国移动公布 2022 年中期业绩报告。报告显示,上半年中国移动营运收入达人民币 4969 亿元,同比增长 12.0%。净利润 703 亿元,同比增长 18.9%,盈利能力全球领先。其中,移动云收入达人民币 234 亿…

vue 前期准备,项目结构

环境 1、node -v 检测 没有就下载node,装到C盘 http://nodejs.cn/download/ 2、vue -v 检测 没有就 npm install -g vue/cli 或者 yarn global add vue/cli 安装脚手架 网址 https://cli.vuejs.org/zh/ 也可以从网址里找到…

如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始

简介:业级应用架构是在不断的演进和迭代,但是我始终感觉企业应用架构的形成过程是在一种看起来科学的方法论下,但是又不完全科学的过程中实现的。 作者:焦方飞 大年初一,看完中国队 1:3 越南队的比赛,在思…

构建、运行、增长,亚马逊云科技发布游戏行业解决方案

云计算除了为游戏提供底层基础设施的IT资源,还能做什么? 编辑 | 宋慧 出品 | CSDN云计算 在全球游戏发展重塑的过程中,中国已经成为全球最大的数字游戏市场,Data.ai发布2022年Level Up全球52强排行榜里,有17家游戏和公…

如何从容应对复杂性

简介:软件的复杂性,是一个很泛的概念。但是一直都是开发过程中的一个难题,本文旨在探讨如何去从容应对复杂性。 作者 | 無涯 来源 | 阿里技术公众号 软件的复杂性,是一个很泛的概念。 但是一直都是开发过程中的一个难题&#xf…

js判断数据类型的几种方式

typeof 对于基本类型,除 null 以外,均可以返回正确的结果。对于引用类型,除 function 以外,一律返回 object 类型。对于 null ,返回 object 类型。对于 function 返回 function 类型。 typeof; // string 有效 typeo…

阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec

简介:经历6年时间,在各团队的努力下,阿里巴巴集团大规模稀疏模型训练/预测引擎DeepRec正式对外开源,助力开发者提升稀疏模型训练性能和效果。 作者 | 烟秋 来源 | 阿里技术公众号 经历6年时间,在各团队的努力下&#…

产学融合如何促进技术创新,英特尔打了个样

作者 | 宋慧 出品 | CSDN 经过多年的积累与扎实科研,中国的科学与技术水平正在达到和超越世界一线水平。这离不开中国有基数庞大的用户和应用场景,为科学界和工业界提供了将理论付诸实践的机会,反复打磨迭代,以提升技术指标。 作…

3大能力升级,云效+钉钉,让研发协作更「敏捷」

简介:你的团队是否面临如下问题:没有敏捷经验,不知道如何落地敏捷或者敏捷实施不规范?研发交付过程信息更新不及时,无法及时跟进交付结果?员工入职离职,多套账号权限管理难?缺乏交付…

阿里云张献涛:自主最强DPU神龙的秘诀

简介:读懂云计算,才能看清DPU热潮。 微信公众号搜索“弹性计算百晓生”,获取更多云计算知识。 如果细数最近火爆的科技概念,DPU必然位列其中。 这是英伟达一手捧红的新造富故事,是2021年SoC领域最热火朝天的创业赛道…

Gartner发布2022年新兴技术成熟度曲线,推动沉浸式、AI自动化发展

编辑 | 宋慧 供稿 | Gartner Gartner 2022年新兴技术成熟度曲线列出了25项值得关注的新兴技术,这些技术正在推动沉浸式体验的发展和扩展、加速人工智能(AI)自动化并优化技术人员交付。 Gartner研究副总裁Melissa Davis表示:“新兴…

阿里云张献涛:公共云正不断向外延伸,一云多态是未来趋势

简介:一云多态是公有云的未来趋势,包括产品的多形态、部署的多形态和生态的多形态。 编者按:2021年10月22日,在云栖大会《一云多形态部署最佳实践》分论坛,阿里巴巴集团研究员、阿里云弹性计算产品线负责人张献涛发表…

4种典型限流实践保障应用高可用|云效工程师指北

简介:4种典型限流实践保障应用高可用,本文总结了一份AHAS限流实践指南,如果你的系统有被恶意用户攻击的风险,或者系统中某个应用出现异常可能会造成雪崩效应,那么这篇文章会对你有所帮助。 大家好,我叫黄博…