当前位置:网站首页>ES6学习笔记(二):教你玩转类的继承和类的对象
ES6学习笔记(二):教你玩转类的继承和类的对象
2020-11-06 20:48:00 【叫我詹躲躲】
文章目录
继承
程序中的继承: 子类可以继承父类的一些属性和方法
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 = x
this.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 = x
this.y = y
}
sum() {
console.log(this.x + this.y)
}
}
class Son extends Father {
constructor(x,y) {
//利用super 调用父类的构造函数
super(x,y)
this.x = x
this.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中的类和对象的注意点等。
版权声明
本文为[叫我詹躲躲]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/3995971/blog/4558932
边栏推荐
- 快快使用ModelArts,零基礎小白也能玩轉AI!
- 带你学习ES5中新增的方法
- 5.5 controlleradvice notes - SSM in depth analysis and project practice
- 6.1.1 handlermapping mapping processor (1) (in-depth analysis of SSM and project practice)
- JVM memory area and garbage collection
- Leetcode's ransom letter
- Flink的DataSource三部曲之二:内置connector
- Troubleshooting and summary of JVM Metaspace memory overflow
- The choice of enterprise database is usually decided by the system architect - the newstack
- Skywalking series blog 5-apm-customize-enhance-plugin
猜你喜欢
Swagger 3.0 天天刷屏,真的香嗎?
前端基础牢记的一些操作-Github仓库管理
Filecoin最新动态 完成重大升级 已实现四大项目进展!
熬夜总结了报表自动化、数据可视化和挖掘的要点,和你想的不一样
Arrangement of basic knowledge points
Architecture article collection
怎么理解Python迭代器与生成器?
Tool class under JUC package, its name is locksupport! Did you make it?
每个前端工程师都应该懂的前端性能优化总结:
Python自动化测试学习哪些知识?
随机推荐
PHPSHE 短信插件说明
一篇文章带你了解SVG 渐变知识
Elasticsearch database | elasticsearch-7.5.0 application construction
Working principle of gradient descent algorithm in machine learning
CCR炒币机器人:“比特币”数字货币的大佬,你不得不了解的知识
How long does it take you to work out an object-oriented programming interview question from Ali school?
Natural language processing - wrong word recognition (based on Python) kenlm, pycorrector
Polkadot series (2) -- detailed explanation of mixed consensus
大数据应用的重要性体现在方方面面
Filecoin最新动态 完成重大升级 已实现四大项目进展!
In order to save money, I learned PHP in one day!
Group count - word length
html
What is the side effect free method? How to name it? - Mario
The choice of enterprise database is usually decided by the system architect - the newstack
Keyboard entry lottery random draw
Every day we say we need to do performance optimization. What are we optimizing?
Architecture article collection
加速「全民直播」洪流,如何攻克延时、卡顿、高并发难题?
High availability cluster deployment of jumpserver: (6) deployment of SSH agent module Koko and implementation of system service management