ES6类是否与构造函数相同?

时间:2016-05-12 07:38:24

标签: javascript class ecmascript-6

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

当然有了不必写这样的东西的好处:

myFunction.prototype.myInheritablemethod= "someMethod";

这是对的吗?

我问,因为我知道有模块模式和揭示模块模式,但那些不是ES6类的,对吧?

1 个答案:

答案 0 :(得分:3)

引入类以围绕现有的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之前的继承。