ES6学习笔记(二):教你玩转类的继承和类的对象
文章目录
- 继承
- super关键字
- ES6中的类和对象的4个注意点:
- 总结
继承
程序中的继承: 子类可以继承父类的一些属性和方法
class Father { //父类constructor () {}money () {console.log(100)}
}
class Son extends Father { //子类继承父类
}
let son = new Son()
son.money() // 100
son.
super关键字
super关键字用于访问和调用对象父类上的函数,可以通过调用父类的构造函数,也可以调用父类的普通函数
class Father { //父类constructor (x, y) {this.x = xthis.y = y}money () {console.log(100)}sum () {console.log(this.x + this.y)}
}
class Son extends Father { //子类继承父类constructor (x, y) {super(x, y) //调用了父类中的构造函数}
}
let son = new Son(1,2)
son.sum() // 3
son.
继承的特点:
- 继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类,(就近原则)
- 继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法
- 在子类中,可以用super调用父类元素的方法
class Father {say() {return '我是父元素'}sing() {return '父元素唱一首歌'}}
class Son extends Father {say() {console.log('我是子元素')}sing() {console.log(super.sing())}
}
var son = new Son()
son.say() //我是子元素
son.sing() //
子元素可以继承父元素的方法的同时,子元素也可以扩展自己的其他方法,子类在构造函数中用super调用父类的构造方法时候,必须放在子类的this之前调用
class Father {constructor(x, y) {this.x = xthis.y = y}sum() {console.log(this.x + this.y)}
}class Son extends Father {constructor(x,y) {//利用super 调用父类的构造函数super(x,y)this.x = xthis.y = y}subtract() {console.log(this.x - this.y)}
}
let son = new Son(5,3)
son.subtract() // 2
son.sum() //8
ES6中的类和对象的4个注意点:
- 在ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象
- 类里面的共有属性和方法一定要加this使用
- 类里面的this指向问题
- constructor里面的this指向实例对象,方法里面的this向这个方法的调用者
总结
这篇文章主要分享了,关于类的继承、继承需要的用到的extends,super、ES6中的类和对象的注意点等。
ES6学习笔记(二):教你玩转类的继承和类的对象相关推荐
- ES6学习笔记二arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- ES6学习笔记二 新的声明方式和变量的解构赋值!
新的声明方式 在ES5的时候,我们只有一个声明方式,var!但是在es6中,声明进行了扩展,我们加上ES5的var的申明方式,我们有了三种声明方式: var:它是variable的简写,可以理解成变量 ...
- 学习笔记(02):教你玩转HTML(html5)h5网页设计,网站开发-八卦图
立即学习:https://edu.csdn.net/course/play/1221/19369?utm_source=blogtoedu html中英文空格如何输出 字符如何旋转 如何自定义位 ...
- 学习笔记(01):教你玩转HTML(html5)h5网页设计,网站开发-浏览
立即学习:https://edu.csdn.net/course/play/1221/19363?utm_source=blogtoedu htm=html
- 学习笔记(01):教你玩转HTML(html5)h5网页设计,网站开发-strong
立即学习:https://edu.csdn.net/course/play/1221/19366?utm_source=blogtoedu <strong></strong>加 ...
- ES6学习笔记(二)
变量解构赋值 ES6允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构,模式匹配,只要等号两边的模式相同左边的变量就会被赋予对应的值,如果解构不成功,变量值就为undefined,如果 ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...
- ES6学习笔记(五):轻松了解ES6的内置扩展对象
前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...
- es6学习笔记-字符串的扩展_v1.0_byKL
es6学习笔记-字符串的扩展_v1.0 字符的Unicode表示法 JavaScript 允许使用uxxxx的形式表示一个字符,但在 ES6 之前,单个码点仅支持u0000到uFFFF,超出该范围的必 ...
- ES6学习笔记04:Set与Map
ES6学习笔记04:Set与Map JS原有两种数据结构:Array与Object,ES6新增两种数据结构:Set与Map 一.Set数据结构 Set类似于数组,但是成员值不允许重复,因此主要用于数据 ...
最新文章
- 循环map_python函数 map函数—比for还好用的循环
- 预测概率是什么?ROC曲线是什么?PR曲线是什么?ROC曲线和PR曲线使用场景差异?
- TOJ 1702.A Knight's Journey
- [YTU]_1032( 统计出其中英文字母、数字、空格和其他字符的个数)
- Linux系统调用在glibc中的实现
- 操作符offset 和 jmp指令
- 获取计算机的信息(IP地址、MAC地址、CUP序列号、硬盘序列号、主板信息等等)...
- JAVA解析纯真IP地址库
- 对于李群和李代数的理解
- java spring 容器_java – Spring容器实现
- java框架之Quartz-任务调度整合Spring
- 【汇编优化】之ARM32与AARCH64指令集优化总结
- 丹琦女神的对比学习新SOTA,在中文表现如何?我们补充实验后,惊了!
- 如何在Spring框架中使用RMI技术
- 第三季-第18课-共享内存通讯
- 2022Android设备唯一标识(AndroidID,OAID等 )
- BMVC-2021-DETR: End-to-End Object Detection with Transformers 阅读笔记
- 编译错误:invalid types ‘int[int]‘ for array subscrip-markdown编辑器
- python qq群自动加入_Python实现向QQ群成员自动发邮件的方法
- LSA/LSI算法原理和实践
热门文章
- c++语言int最大值,c++ 关于如何获取int型的最大值
- concat特征融合_如何理解concat和add的方式融合特征
- Content-Type
- 文字在图片上c语言,HTML让文字在图片上显示的几种方法
- pg函数同步数据到mysql_将数据从PostgreSQL复制到MySQL
- linux csh错误,运行lampp时报错,错误信息如下,求解决方案
- cisco 通过tftp备份/恢复配置和3560交换机IOS升级
- 微软企业库mysql分页存储_使用微软企业库,非分页sql语句得到分页数据方法
- react中redux的store.js样板文件
- html响应式布局_媒体查询