【问题标题】:When/Why Use Class in JavaScript Over a Constructor? [duplicate]何时/为什么在 JavaScript 中使用类而不是构造函数? [复制]
【发布时间】:2018-05-28 12:47:42
【问题描述】:

是的,有很多方法可以创建和使用对象。那么为什么/什么时候创建一个构造函数而不是声明一个类并使用 constructor() 方法呢?我的导师说这没有什么区别,但我不相信他。

// 1
function Grumpy(name, profile, power){
    this.name = name;
    this.profile = profile;
    this.power = power;
}

对比

// 2
class Grumpy{
    constructor(name, profile, power){
        this.name = name;
        this.profile = profile;
        this.power = power;
    }
}

【问题讨论】:

  • 类语法只是语法糖。在 javascript 引擎中,类变成了构造函数语法。所以你的导师是对的。因此,在两者之间做出决定更多的是偏好情况,您的团队使用什么以及您必须支持哪些浏览器。
  • 一个很好的理由,恕我直言,当在多个代码编辑器中使用时,javascript 类通常比构造函数提供更好的智能感知体验。
  • 许多 JS 增强或“扩展” JS 的 JS 语言都是语法糖。这并不意味着在实践中使用其中一个没有区别。副本中的答案解决了这个问题。

标签: javascript class javascript-objects


【解决方案1】:

在 ECMAScript 2015 中引入的 JavaScript 类主要是 JavaScript 现有的基于原型的语法糖 遗产。类语法没有引入新的面向对象 继承模型到 JavaScript。

有关更多默认值,请参阅MDN

【讨论】:

  • 这不是重复链接中所说的!
猜你喜欢
  • 1970-01-01
  • 2018-05-17
  • 2015-06-10
  • 2012-06-28
  • 1970-01-01
  • 2021-06-29
  • 2013-04-25
  • 2019-11-07
相关资源
最近更新 更多