ES6-11第七天-类与继承

494 阅读1分钟

我正在参与掘金新人创作活动,一起开启写作之路。

一、ES5中的类与继承

1.1 ES5中的类

  • ES5中没有累的概念,我们通常通过构造函数来模拟类
  • function 声明时通常大写,意味着定义一个类,比如 function Dog(){}
  • 通过new Dog() 来声明实例化对象
  • this指向的是new 出来的实例化对象

carbon.png

  • 我们通常不在构造函数中定义方法,因为每次new时,都会伴随一个new Function,我们通常将方法放在原型上

carbon (1).png

1.2 静态属性和静态方法

1.2.1 静态属性和实例属性

  • 静态属性直接定义在类上,实力属性定义在构造函数内

carbon (2).png

1.2.2 静态方法与实例方法

  • 静态方法内的this指向当前构造函数,其实就是Dog.getColor= function等这一部分代码
  • 静态方法内是不能使用实例属性的,因为this指向变了
  • Math.max等等方法,就是静态方法,不需要new调用

carbon (3).png

1.3 ES5中类的继承

1.3.1 构造函数继承

  • 构造函数继承只能继承父类的属性,不能继承父类的方法

carbon (4).png

1.3.2 原型继承

  • 原型继承可以继承父类的方法,不能继承属性

carbon (5).png

1.3.3 组合继承

  • 组合继承就是原型继承和构造函数继承的组合,这样就能既继承属性又继承方法

carbon (6).png

二、ES6中的类与继承

2.1 ES6中的类

  • 通过class关键字定义类,类名通常大写,包含一个constructor构造函数
  • class其实是一个语法糖

carbon (7).png

2.2 ES6中的继承

carbon (8).png

加群一起学习 互助 分享

image.png