当前位置:首页>>ES6中的“类”

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.

猜你喜欢