class-constructor构造器中super函数的使用说明

简介: super函数的使用示例

class-constructor构造器中super函数的使用说明

 

目录

一、 super函数的使用示例

 

一、super函数的使用示例

class Person{
  constructor(name,age){

this.name = name

this.age = age

}

sayHello(){

console.log(‘大家好’)

}

}

class American extends Person{

 constructor(){

此时会报错,报错内容:missing super () call in constructor

忘记了使用super函数,在constructor构造函数中,必须优先调用super函数

修改为:

class American extends Person{

constructor(name,age){

 

//问题1:为什么一定要在constructor中调用super

//答案:因为如果一个子类,通过extends关键字继承了父类。那么在子类constructor构造函数中,必须优先调用super()

 

//问题2super是什么东西?

//答案:super是一个函数,而且它是父类的构造器,子类中的super其实就是父类中,constructor构造器的一个引用

 

//问题3:为什么调用了super之后,a1实例的nameage都变成了undefined了?

 

//这是子类 美国人

//class类中,可以使用extends关键字,实现子类继承父类

//语法:class子类extends父类{}

 

class American extends Person{

constructor(){

 

}

const a1 = new American(Jack,20)

console.log(a1)

a1.sayHello()

 

super(name,age)

}

}

 

const a1 = new American(Jack,20)

console.log(a1)

a1.sayHello()

 

//这是子类 中国人

class Chinese extends Person{

constructor(name,age){

super(name,age)

}

}

const c1 = new American(‘张三’,20)

console.log(c1)

c1.sayHello()

 

注意事项:
如果父类有空构造器,super()可以不写,但如果父类只有含参数的构造器,这个super(...)一定要写,并且要对应父构造器的参数,否则就会报错!

相关文章
|
4月前
|
Java
怎么用super调用超类构造函数?
Java 中的 `super` 关键字用于子类引用父类的构造函数和成员。当子类构造函数需要调用父类的构造函数时,`super` 须作为第一条语句,如 `super(param列表);`,这允许子类初始化父类的属性。示例中,`BoxWeight` 类通过 `super(w, h, d)` 调用 `Box` 的构造函数来设置尺寸,而 `BoxWeight` 自己仅设置重量。`super` 也可用于访问被子类隐藏的父类成员,实现封装。
定义类,super的使用,super的使用
要求: a.需要有一个类变量 b.需要有>=2个的对象变量 c.定义一个方法:打印类变量和对象变量 d.使用print打印对象->输出为This is a object e.实例化两个对象:且两个对象相加等于2 f.为对象添加一个临时变量temp_var
54 0
|
6月前
|
缓存 前端开发 JavaScript
方法 constructor()
方法 constructor() 是 JavaScript 中构造函数的一个特殊方法,它用于创建和初始化对象。当使用 new 操作符创建一个对象时,构造函数的 constructor 方法会被自动调用。在 constructor 方法中,可以设置对象的属性和方法,以及执行一些初始化操作。
59 7
|
Java Android开发
构造器里面的super()有什么用?到底写不写?
平时写的单独一个类如果没有直接继承父类就是直接继承的Object,有父类就是间接继承的Object,因为父类会继承Object,java的所有类都是Object的子类,哪怕不写super(),也会默认调用的父类的空构造器。
112 0
|
存储 索引 Python
Python函数是所谓的第一类对象(First-Class Object)是什么鬼?
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言。
153 0
typescript37-class的构造函数实例方法继承(extends
typescript37-class的构造函数实例方法继承(extends
80 0
typescript37-class的构造函数实例方法继承(extends
|
前端开发 开发者
class-constructor 构造器中 super 函数的使用说明|学习笔记
快速学习 class-constructor 构造器中 super 函数的使用说明
115 0
|
JavaScript 前端开发 开发者
class-创建类并通过 constructor 挂载实例属性|学习笔记
快速学习 class-创建类并通过 constructor 挂载实例属性
225 0
|
前端开发 程序员 开发者
class-使用 static 创建静态属性|学习笔记
快速学习 class-使用 static 创建静态属性
121 0
|
前端开发 JavaScript 开发者
class-使用 extends 实现子类继承父类|学习笔记
快速学习 class-使用 extends 实现子类继承父类
116 0