WEB-从零开始让前端飞Web前端之路

Class 简单使用摘要

2018-03-30  本文已影响42人  YjWorld

参考

class 基本语法

//class 实现
class Point {
  constructor (x,y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    return (this.x,this.y)
  }
}

//z构造函数实现
function Points(x,y) {
  this.x = x;
  this.y = y;
}

Points.prototype.toString = function(){
  return this.x+this.b
}

constructor

class Foo {
  static classMethod() {
    return 'hello';
  }
}

Foo.classMethod() // 'hello'

var foo = new Foo();
foo.classMethod()
// TypeError: foo.classMethod is not a function

继承 extends

在子类的构造函数中,只有调用super之后,才可以使用this关键字,否则会报错。这是因为子类实例的构建,是基于对父类实例加工,只有super方法才能返回父类实例。

class Point {
}

class ColorPoint extends Point {
}

class ColorPoint extends Point {
  constructor(x, y, color) {
    super(x, y); // 调用父类的constructor(x, y)
    this.color = color;
  }

  toString() {
    return this.color + ' ' + super.toString(); // 调用父类的toString()
  }
}

super

class A {
  constructor() {
    console.log(new.target.name);
  }
}
class B extends A {
  constructor() {
    super();
  }
}
new A() // A
new B() // B

super虽然代表了父类A的构造函数,但是返回的是子类B的实例,即super内部的this指的是B

上一篇下一篇

猜你喜欢

热点阅读