ES6中的“类”
程序员文章站
2022-07-16 22:04:50
...
一、基本结构
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
var p = new Point(2,3);
- 当利用new实例化一个对象时,自动调用construtor函数,进行对对象进行属性的添加,其中类中的方法,不可加’,'进行分割,否则会报错,方法相当于实例原型对象Point.prototype上的方法.
- 方法之间可以相互调用,this–>实例对象
二、类的’继承’
// 1.定义父类
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
}
// 2.子类继承父类
class ColorPoint extends Point {
constructor(x, y, color) {
super(x, y); // 调用父类的constructor(x, y),注意:返回的是子类的实例
this.color = color;
}
toString() {
return this.color + ' ' + super.toString(); // 调用父类的toString()
}
}
-
子类:通过’extends’继承了父类的所有属性和方法
-
super作为函数调用时,指的是父类的构造函数,用来构建自己的this对象,super(x,y),这步,就是利用父类的构造函数,构造自己的this对象,获取与父类实例相同的属性和方法,然后自己传入其他参数,对自己的this对象进行加工,加上子类自己的实例属性和方法,必须调用super方法,且在super在子类当做对象进行调用时,指的是
父类的原型对象
.一言蔽之:就是子类借用父类的构造函数,打造自己的实例对象,并进行属性和方法的扩展,在借用时,修改为自己的this.
上一篇: ES6中类的概念