ES6的class总结及其使用

JS构造函数

JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。

1.png

ES6的class

上例也可以通过ES6的class类来写,写法如下:

2.png

上面代码定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5 的构造函数MathHandle,对应 ES6 的MathHandle类的构造方法。

MathHandle类除了构造方法,还定义了一个add方法。注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。

ES6 的类,完全可以看作构造函数的另一种写法。

class MathHandle {
  // ...
}

typeof MathHandle // "function"
MathHandle === MathHandle.prototype.constructor // true

上面代码表明,类的数据类型就是函数,类本身就指向构造函数。

使用的时候,也是直接对类使用new命令,跟构造函数的用法完全一致。

构造函数的prototype属性,在 ES6 的“类”上面继续存在。事实上,类的所有方法都定义在类的prototype属性上面。

class Point {
  constructor() {
    // ...
  }

  toString() {
    // ...
  }

  toValue() {
    // ...
  }
}

// 等同于

Point.prototype = {
  constructor() {},
  toString() {},
  toValue() {},
};

继承

普通构造函数的继承方法如下

pic4

而class的继承方式如下

pic3

总结

pic5

 原型——在zepto和jquery中的应用
模块化的总结——AMD/CommonJS/ES6 
上一篇:原型——在zepto和jquery中的应用
下一篇:模块化的总结——AMD/CommonJS/ES6


如果我的文章对你有帮助,或许可以打赏一下呀!

支付宝
微信
QQ