资讯专栏INFORMATION COLUMN

super

imccl / 651人阅读

摘要:语法调用父对象父类的构造函数调用父对象父类上的方法在构造函数中使用时,关键字将多带带出现,并且必须在使用关键字之前使用。,需要先被调用这里,它调用父类的构造函数的作为的和注意在派生的类中在你可以使用之前必须先调用。忽略这这将导致引用错误。

super关键字用于访问和调用一个对象的父对象上的函数。super.prop和super[expr]表达式在类和对象字面量任何方法定义中都是有效的。
语法
super([arguments]); 
// 调用 父对象/父类 的构造函数

super.functionOnParent([arguments]); 
// 调用 父对象/父类 上的方法
在构造函数中使用时,super关键字将多带带出现,并且必须在使用this关键字之前使用。
class Polygon {
  constructor(height, width) {
    this.name = "Polygon";
    this.height = height;
    this.width = width;
  }
  sayName() {
    console.log("Hi, I am a ", this.name + ".");
  }
}

class Square extends Polygon {
  constructor(length) {
    this.height; 
    // ReferenceError,super 需要先被调用!
    
/*
   这里,它调用父类的构造函数的 length, 
   作为Polygon 的 width和 height.
*/ 
    super(length, length);
    
/*
    注意: 在派生的类中, 在你可以使用"this"之前, 必须先调用super()。
    忽略这, 这将导致引用错误。
*/
    this.name = "Square";
  }

  get area() {
    return this.height * this.width;
  }

  set area(value) {
    this.area = value;
  } 
}

https://developer.mozilla.org...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97649.html

相关文章

  • javascript—自身属性与原型属性关系

    摘要:构造函数自身属性是直接赋值给它的所有,也就是说本身的属性,不管是直接类型还是引用类型都是分别复制一份给和,因此修改了的属性并不会影响到。 最基本的构造函数与实例的关系: var Sub = function (color,list) { this.color = color; this.list = list } var sub1 = new Sub(red,[1])...

    刘福 评论0 收藏0
  • 再和“面向对象”谈恋爱 - super(六)

    摘要:同时弹出的结果是指向了子类,又说明虽然调用的是父类的构造函数,但是调用完后会指向子类,指向也被改成了子类的实例。 在上一篇文章里介绍了继承,那其中说过一个很关键的东西想要继承子类里里必需先调用一个super方法。而super的作用绝对是价值连城!同时super的作用还有多种,并且跟你的使用环境有关系。 1、当作函数使用 super被当作函数使用,这种情况是最普遍的,上一篇文章里已经使用...

    Towers 评论0 收藏0
  • 由一篇ES6继承文章引发对于super关键字的思考

    摘要:举个栗子中一段简单的继承代码实现使用了,不会报错这段代码非常简单,在子类中使用了关键字,编译时不会报错,也可以正常执行。参考资料从中的讲原型链与继承的静态属性和实例属性 问题引入 最近一直在看原型继承相关的东西,翻到这么一篇文章: 从ES6中的extends讲js原型链与继承 文中有一个点让我很感兴趣,箭头函数在继承过程中无法通过super关键字获取,这是为什么呢? 前置知识 MDN上...

    mudiyouyou 评论0 收藏0
  • super 没那么简单

    摘要:说到,大家可能觉得很简单呀,不就是用来调用父类方法的嘛。单继承在单继承中就像大家所想的那样,主要是用来调用父类的方法的。你觉得执行下面代码后,的值是多少呢执行结果如下这个结果说明了两个问题确实调用了父类的方法。 说到 super, 大家可能觉得很简单呀,不就是用来调用父类方法的嘛。如果真的这么简单的话也就不会有这篇文章了,且听我细细道来。? 约定 在开始之前我们来约定一下本文所使用的 ...

    xiguadada 评论0 收藏0
  • Python: 你不知道的 super

    摘要:整个过程还是比较清晰的,关键是要理解的工作方式,而不是想当然地认为调用了父类的方法。小结事实上,和父类没有实质性的关联。 super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: class Animal(object): def __...

    darkerXi 评论0 收藏0

发表评论

0条评论

imccl

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<