Javascript基础之class

346 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Class: 类是函数的一种,但不使用function来初始化,而是用关键字class,并在constructor()方法中分配属性

方法

constructor: 用于创建和初始化在类中创建的对象的特殊方法
如果没有构造方法,javascript将添加一个不可见的空构造方法
同时,一个类不能使用多个constructor()方法,这将抛出SyntaxError 可以使用super()方法类调用父类的构造方法

关键字

extends: 扩展类(继承)

static: 为类定义静态方法

super: 应用父类

创建类

  class Car { // 创建类
    constructor(brand){
      this.carname = brand
    }
  }
  mycar = new Car('Ford') // 创建Car类的对象

通过继承创建类(extends关键字)

extends用于创建一个类(父类)的子类 子类继承了父类的所有方法

  class Car { // 类名称首字母大写
    constructor(){
      this.carname = brand
    }
    present(){
      return 'I have a ' + this.carname
    }
  }
  class Model extends Car {
    constructor(brand, mod){
      super(brand)
      this.model = mod
    }
    show(){
      return this.present() + ', it is a ' + this.model
    }
  }
  mycar = new Model("Ford", "Mustang")
  document.getElementById("demo").innerHTML = mycar.show()

super()方法引用父类

使用extends继承父类的属性和方法时,如果父类的构造函数是非参数调用的,可以需不要使用super(),因为会默认调用super(),如果父类的构造函数是需要参数的,必须调用super(...args),否则无法使用this

通过在构造方法中调用super(),将调用父类的构造方法,并可以访问父类的属性和方法