ES6-类

目录:

  • 简介
  • 定义
  • 类构造函数
  • 继承

ES6的类是什么?

类是面向对象的内容,而ES6中的类是构造函数和原型的语法糖。

因此,类其实就是构造函数。

类的定义需要使用class关键字。

定义类:

  • 类声明:class Animal{}
  • 类表达式:const animal = class {}
    类表达式没有提升。

类构造函数:

在ES6类中,有专门的构造函数constructor,在使用new初始化类时会自动调用这个函数。当没有构造函数时,相当于为空。

 class Animal {
   constructor() {
     console.log("class Animal");
   }
 }  
 let animal = new Animal();//class Animal

类构造函数和构造函数区别:
调用类构造函数必须使用new否则报错,而构造函数不使用new则会当作普通函数执行

 class Animal {
   constructor() {
     this.name = name
   }
 }
let animal = Animal("Tim");
console.log(animal)//Class constructor Animal cannot be invoked without 'new'
 function Animal(name) {
 this.name = name;
 }
 let animal = Animal("Tim");
 console.log(animal)//undefined

继承:

 class Animal {
   constructor(name) {
     this.name = name;
   }
   say() {
     console.log("bark...");
   }
 }
 class Dog extends Animal {
   constructor(name, age) {
     super(name);
     this.age = age;
   }
 }

 let dog = new Dog("tim", 12);
 dog.say();//bark...

使用extends关键字继承,并且在子类的构造函数中需要使用super()用它的原型。并且super之前引用this会报错

更多内容:IFTS

上一篇:java中的内部类


下一篇:多态与多态性