Class 和 普通构造函数有何区别
JS构造函数
通过function
命令生成基本的构造函数,然后设置构造函数的prototype
属性,在原型链中写如方法,供实例调用。
1 | // 声明基本构造函数 |
Class 基本语法
构造函数的代码通过Class
语法写为:
1 | Class MathHandle { |
语法糖
定义:语法糖与原始写法本质是一样的(效果或结果),但语法糖会比原始的写法会更加简单,易懂,清晰。可以理解为语法糖的代码会被解析成原始代码。
JS中没有真真意义上的Class
,只是为了让类的写法与java
C#
等语言的类看起来一样,本质上还是通过 prototype
原型链的形式运行的。
1 | Class MathHandle { |
上面代码可以看出,通过Class
语法定义的类,其实就是一个构造函数,与通过function
定义的构造函数是一样的。
继承
继承就是从抽象到具象的一个关系(过程),由高级到低级。例子:一个狗
的类继承了动物
的类,动物
会比 狗
更抽象,所以 狗
会继承 动物
类。通过实例化狗
这个类,产生比狗
这个类更具体的哈士奇
,哈士奇
继承狗
的所有特点,由于狗
继承了动物
,所以哈士奇还将有动物
的特点。
通过function
实现类的继承效果:
1 | // 动物类 |
同样效果的代码使用Class
语法为:
1 | // 动物类 |