前面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,该方法执行后,就给左右箭头注册了事件;

ES6-Class类下的更多相关文章

  1. ES6入门——类的概念

    1.Class的基本用法 概述 JavaScript语言的传统方式是通过构造函数,定义并生成新对象.这种写法和传统的面向对象语言差异很大,下面是一个例子: function Point(x, y) { ...

  2. ES6 | class类的基本语法总结

    类和模块的内部,默认就是严格模式,所以不需要使用use strict指定运行模式.只要你的代码写在类或模块之中,就只有严格模式可用. 考虑到未来所有的代码,其实都是运行在模块之中,所以 ES6 实际上 ...

  3. es6 --- class 类的继承使用

    传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...

  4. ES6 class类中定义私有变量

    ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的 ...

  5. ES6——class类继承(读书笔记)

    前言 我一定是一个傻子,昨天这篇文章其实我已经写好了一半了,但是我没有保存 这是学习ES6的过程,我没有系统的看完阮大大的书.零零散散的,很多功能知道,但是没有实际的用过 看了几遍,总是看前面几章,所 ...

  6. React和ES6(二)ES6的类和ES7的property initializer

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...

  7. [js高手之路] es6系列教程 - new.target属性与es5改造es6的类语法

    es5的构造函数前面如果不用new调用,this指向window,对象的属性就得不到值了,所以以前我们都要在构造函数中通过判断this是否使用了new关键字来确保普通的函数调用方式都能让对象复制到属性 ...

  8. Java中的静态方法和实例方法的调用的理解(不同的类下的方法调用)

    public class MethodCall { public static void main(String[] args) { Test.sayStatic(); Test test = new ...

  9. 让一个继承unittest.TestCase的类下的setUp和tearDown只执行一次

    知道unittest单元测试框架的朋友应该都知道, 执行继承了unittest.TestCase的类下每个test开头的方法(就是用例)时,都会执行setUp和tearDown,如下面的例子所示: i ...

  10. C#如何通过反射调用类下的方法

    首先模拟一个mvc的项目,创建一个业务类(HomeService),在类下创建3个方法 public class HomeService { /// <summary> /// 无参方法 ...

随机推荐

  1. jsp传入servlet数据

    面对老师的19级期末,要用到jsp传入servlet的数据传输,借鉴了其他人的代码,以下是我的程序 jsp界面: <%request.getSession().setAttribute(&quo ...

  2. Hibernate多表关系

    Hibernate多表关系 hibernate 一对多(多对一) 创建实体 配置ORM映射文件 创建测试文件 双方关系维护 级联操作 外键的维护权管理 双方关系维护.级联操作.外键维护权之间的关系 一 ...

  3. navicat无法连接linux内的防火墙

    解决方法:开放mysql的端口(3306).然后重启防火墙.或者直接关闭防火墙.具体代码如下: firewall-cmd --zone=public --add-port=3306/tcp --per ...

  4. JZOJ 2022.07.06【提高组A】模拟

    历程 被暴打了 原因是钻进了 \(T4\) 的坑中... 先看完题,发现 \(T4\) 比较有意思,\(T2\) 没有想法 \(T3\) 挺容易,做法似乎很好想 \(T1\) 送分,十几分钟搞定 然后 ...

  5. LeetCode算法训练 93.复原IP地址 78.子集 90.子集II

    欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练 93.复原IP地址 78.子集 90.子集II LeetCode 93. 复原 IP 地址 分析 字符串全部由数字组成,ipv4每一段数字不 ...

  6. (一)钉钉宜搭低代码应用开发高级认证之远程API调用方法示例

    大家好,我是代号六零一,在此分享近期学习的低代码开发知识~,如有疑问欢迎在评论区下方点评,作者愿与您一道共同探讨: 一.创建数据源 二.请求地址配置 钉钉路径示例:/dingtalk/web/APP_ ...

  7. 富士胶片2105N打印机安装说明

    打开驱动文件,执行软件 自定义安装驱动 手动输入IP地址 下一步安装完成 自定义安装扫描软件 选择print & scan 下一步安装完成

  8. vue-cli-serve启动报错

    报错信息: > vue-cli-service serve INFO Starting development server... 10% building 2/2 modules 0 acti ...

  9. Cocos Creator微信登录接入(完全小白教程)(安卓篇)

    1:创建 Creator项目,如下

  10. django-drf知识点梳理