前面super的源码:

查看代码

<script>
// 1.作为函数调用
// 代表父类的构造方法,只能用在子类的构造方法中,用在其他地方就会报错
// super 虽然代表了父类的构造方法,但是内部的 this 指向子类的实例
// class Person {
// constructor(name) {
// this.name = name; // console.log(this);
// }
// }
// class Programmer extends Person {
// constructor(name, sex) {
// super(name, sex);
// } // // hi() {
// // super(); // ×
// // }
// }
// // new Person();
// new Programmer(); // 2.作为对象使用
// 2.1.在构造方法中使用或一般方法中使用
// super 代表父类的原型对象 Person.prototype
// 所以定义在父类实例上的方法或属性,是无法通过 super 调用的
// 通过 super 调用父类的方法时,方法内部的 this 指向当前的子类实例
// class Person {
// constructor(name) {
// this.name = name; // console.log(this);
// } // speak() {
// console.log('speak');
// // console.log(this);
// } // static speak() {
// console.log('Person speak');
// console.log(this);
// }
// }
// class Programmer extends Person {
// constructor(name, sex) {
// super(name, sex); // // console.log(super.name);
// // super.speak();
// } // // hi() {
// // super(); // ×
// // } // speak() {
// super.speak();
// console.log('Programmer speak');
// } // // 2.2.在静态方法中使用
// // 指向父类,而不是父类的原型对象
// // 通过 super 调用父类的方法时,方法内部的 this 指向当前的子类,而不是子类的实例
// static speak() {
// super.speak();
// console.log('Programmer speak');
// }
// }
// // new Person();
// // new Programmer();
// Programmer.speak(); // 3.注意事项
// 使用 super 的时候,必须显式指定是作为函数还是作为对象使用,否则会报错
class Person {
constructor(name) {
this.name = name;
} speak() {
console.log('speak');
}
}
class Programmer extends Person {
constructor(name, sex) {
super(name, sex); // console.log(super);
// console.log(super());
// console.log(super.speak);
}
}
</script>

七。class的应用

通过键盘左右键切换幻灯片

应用思路:

基类写底层都适用的功能,上一张下一张切换这种、比如pc端幻灯片,移动端幻灯片继承基类,子类中写具体pc端代码或者移动端代码

基类constructor里面传两个形参,接收slider 这个DOM元素以及用户参数(用户没有传参就用默认参数),然后子类继承父类,子类的构造方法中执行super(),调用父类的构造方法,执行里面的函数体,里面实现了切换图片的部分逻辑;子类的构造方法中添加this.a()

在子类中添加方法a,该方法执行后,就给左右箭头注册了事件;

最新文章

  1. int与Integer的爱恨情仇
  2. iOS杂谈-图片拉伸的实现
  3. mysql 和字符串截取相关的知识点
  4. ?this&amp;函数自身的引用
  5. HDU 1098 Ignatius&#39;s puzzle
  6. leetcode处女作
  7. django的路由系统
  8. mvp架构解析
  9. OpenGL+OpenCV实现立方体贴图
  10. react native原生模块引用本地jar包
  11. python3 os模块
  12. Hibernate validator使用和自定义validator及整合Spring MVC
  13. day31 logging 日志模块
  14. 用webstorm开发前端项目前的一些配置
  15. Dede更新提示DedeTag Engine Create File False的解决办法
  16. Revit API遍历系统族布置喷头
  17. Delphi调用网页美化SQL
  18. 读Understanding the Linux Kernel, 3rd Edition有感
  19. [POI2010]Divine Divisor
  20. Sql--IDENTITY()自动增长列

热门文章

  1. 【KAWAKO】soundtoch-使用可执行文件对音频进行变调或变速
  2. 【ARM架构】armv8 系统安全概述
  3. 为了安装alien,我更新了yum源,结果还是没装上
  4. 基于C++的OpenGL 04 之变换
  5. 【django-vue】前端取消默认样式 main.js配置 后端主页模块接口 跨域问题详解 项目自定义配置 git介绍和安装
  6. LeetCode-2 两数相加题解
  7. python的常见问题解决
  8. MySQL联合索引的创建规则
  9. 退役*CPCer的找实习总结
  10. k3s|如何将k8s集群的node节点设置不可调度或删除node节点?