ES6类是否与构造函数相同

Are ES6 classes the same as constructor functions?

本文关键字:构造函数 是否 ES6      更新时间:2023-09-26

据我所知:ES6类基本上是构造函数,对吧?

当然,不必写这样的东西的好处是:

myFunction.prototype.myInheritablemethod= "someMethod";

这是正确的吗?

我之所以这么问,是因为我知道有模块模式和揭示模块模式,但这些并不是ES6类的意义所在,对吧?

引入类是为了围绕JavaScript的现有原型继承模型提供语法糖。以下。。。

class Example {
  constructor(a, b) {
    this.a = a;
    this.b = b;
  }
  add() {
    return this.a + this.b;
  }
}

基本上相当于:

function Example(a, b) {
  this.a = a;
  this.b = b;
}
Example.prototype.add = function() {
  return this.a + this.b;
};

class语法及其提供的其他位(如extendsstatic)使编写处理继承的代码变得更加容易和清晰。但由于它只是围绕现有技术的糖,因此首先正确理解ES6之前的继承可能是有意义的。