class Star {
// constructor 函数,可以接受传递过来的参数,同时返回实例对象
// constructor 函数,只要 new 生成实例时,就会自动调用这个函数,如果不写类也会自动生成
constructor(uname) {
this.uname = uname;
}
// 创建方法
print(content) {
return content + this.uname;
}
};
var zs = new Star(‘zs‘);
zs.print(‘hello world‘); // 调用
constructor
构造函数
constructor()
是类的构造函数(默认方法),用于传递参数,返回实例对象;通过new命令生成对象实例时,自动调用该方法,如果没有显示定义,类内部会自动创建一个constructor()
class Father {
constructor(x, y) {
this.x = x;
this.y = y;
}
sum() {
console.log(this.x + this.y);
// console.log(1 + 2);
}
}
class Son extends Father {
// 子类中没有 constructor 构造方法时,并且父类中的方法没有涉及到父类中的 constructor 子类是可以直接通过 extends 来继承父类身上的方法的
constructor(uname) {
// 如果运用到了父类中的构造函数 constructor 子类想再次调用则需要 子类也声明 constructor 构造函数并且通过 super() 方法传递想要的参数,进行计算
super(11, 22); // super() 方法必须写到子类构造方法中的最前面,高于自身的this
this.uname = uname;
}
// 如果子类中存在于父类相同的方法,调用时就近原则
sum() {
console.log(2 + 2);
// 也可以通过super()方法直接调用 父类中的sum方法
super.sum();
}
// 子类可以拓展自己的方法
print() {
console.log(this.uname);
}
}
var son = new Son();
1. son.sum(); // 3
2. son.sum(); // 33
3. son.sum(); // 4 33
ES6 类 class 继承 extends 构造函数 constructor()
原文:https://www.cnblogs.com/article-record/p/12663731.html