constructor
constructor()
方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法
一个类必须有constructor()
方法,如果没有显式定义,一个空的constructor()
方法会被默认添加
如果:定义了一个空的类Parent,JavaScript 引擎会自动为它添加一个空的 constructor()方法
class Parent {}
// 等同于
class Parent {
constructor() {}
}
new Parent() instanceof Parent // true
constructor()
方法默认返回实例对象(即this),完全可以手动指定返回另外一个对象
结果会导致实例对象不是 Parent类的实例
class Parent {
constructor() {
return Object.create(null)
}
}
new Parent() instanceof Parent // false
static
不用new
也可以调用的方法
get
set
extend
子类继承父类
class Child extends Parent {
constructor() {
super()
}
}
在 super() 执行时,它指向的是 子类 Child 的构造函数,而不是父类 Parent 的构造函数
super() 内部的 this 指向的是 Child
super中 this的指向
通过 super 调用父类的方法时,super 会绑定子类的 this
在普通方法中,指向父类的原型对象;在静态方法中,指向父类