super 关键字用于访问父对象上的函数

super可以用在类的继承中,或者对象字面量中,super指代了整个prototype或者proto指向的对象

prototype相关

用在子类constructor函数中

class Person {constructor (name) {this.name = name;}
}
class Student extends Person {constructor ( age) {super(); // 用在构造函数中,必须在使用this之前调用this.age = age;}
}var s = new Student;
s//Student {name: undefined, age: undefined}

调用父类的静态函数

class Human {constructor() {}static ping() {return 'ping';}
}class Computer extends Human {constructor() {}static pingpong() {return super.ping() + ' pong';} // 只有在子类的静态函数中才能调用父类的静态函数(babel环境测试,按理说,在实例函数中应该也可以调用,不过实际测试环境中报错)
}
Computer.pingpong(); // 'ping pong'

类似

class Human {constructor() {}ping() {return 'ping';}
}class Computer extends Human {constructor() {super()}pingpong() {console.log(this.ping() === super.ping());//truereturn this.ping() + ' pong';}
}
var a = new Computer
a.pingpong(); // 'ping pong'

对象的字面量(proto项目)

var obj1 = {method1() {console.log("method 1");}
}var obj2 = {method2() {super.method1();}
}
// 必须利用setPrototypeOf将第二个对象的原型设为第一个对象
Object.setPrototypeOf(obj2, obj1);
obj2.method2(); //  "method 1"

es6-super关键字相关推荐

  1. es6 super关键字

    super关键字 super这个关键字,既可以当作函数使用,也可以当作对象使用.在这两种情况下,它的用法完全不同. 第一种情况,super作为函数调用时,代表父类的构造函数.ES6 要求,子类的构造函 ...

  2. es6 super 关键字

    super 关键字 我们知道,this关键字总是指向函数所在的当前对象,ES6 又新增了另一个类似的关键字super,指向当前对象的原型对象. const proto = { foo: 'hello' ...

  3. ES6——super关键字

    super关键字有两种使用场景 1.当用作方法时 在ES6的构造函数中,ES6的语法规定,在继承于父类的子类的构造函数中,必须使用super(),因为在子类中是不存在上下文指向(this)的,需要使用 ...

  4. ES6的 super 关键字

    Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. 这是因为子 ...

  5. ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式

    ES6 (二十二)Class 的继承.extends关键字.super 关键字(函数调用(constructor).对象(父类原型对象)).原型对象(原型链).Mixin 模式 文章目录 ES6 (二 ...

  6. ES6 class关键字 ~ 非常详细

    下面的对ES6中class关键字的整理,希望可以帮助到有需要的小伙伴~ 文章目录 类的声明 构造函数 getter与setter 不允许提前声明 不允许重复声明 静态方法 静态方法的语法 类的继承 实 ...

  7. JavaScript中解析super关键字

    虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...

  8. This和Super关键字的对比

    this和Super关键字 this和Super关键字的对比 Super关键字的用法如下: 1. super关键字代表了父类空间的引用: 2. super关键字的作用: 3. super关键字调用父类 ...

  9. Java基础学习总结(8)——super关键字

    2019独角兽企业重金招聘Python工程师标准>>> 一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们 ...

  10. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

最新文章

  1. 计算机网络:单播,多播
  2. python booleans_Python 2.1 BooleansComparisons
  3. java连续输入_java – 要求用户进行多次输入
  4. Silverlight Com组件支持全解析
  5. JAVA将ResultSet结果集遍历到List中
  6. oracle rman 检查坏块,Oracle中使用RMAN来检验坏块
  7. android inflate,Android 关于inflate
  8. [转] 数据库加锁 sql加锁的
  9. Python 格式化字符串
  10. uview组件得到回调的参数
  11. Spug发布前端项目实战全过程
  12. LibreELEC(kodi)安装
  13. 时光不负,对我来说不寻常的一年 | 2021 年终总结
  14. Prometheus监控 Blackbox_exporter黑盒监测
  15. 儒雅计算机导师,龙桂鲁:儒雅的学者,严慈的良师-清华大学新闻网
  16. oracle ddl大全,[数据库]Oracle_DDL
  17. 【OpenJudge】白细胞计数
  18. MD5大小写,32,16
  19. 政策理解优化,安徽省碳达峰碳中和领域科技项目申报领域条件要求方式流程要点
  20. Excel地图插件(ExcelMaps)

热门文章

  1. maven处理和java平级的资源文件
  2. 营销获客场景下的个人类业务要件分析
  3. SQL SERVER中的纵横查询
  4. 2019.5.18-5.19 ACM-ICPC 全国邀请赛(西安)赛后总结
  5. Zabbix3.2.6之通过JMX监控Tomcat
  6. 高性能业务架构解决方案(LVS+Keepalived)
  7. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享
  8. 真搞不懂这些部门大学为什么要迁户口?
  9. Flash开发的基本概念
  10. Nagios 3.x 在线帮助中文版