在JavaScript中,何时/为什么要使用类而非构造函数?

5

创建和使用对象有很多方法。那么为什么/何时最好创建一个构造函数而不是声明类并使用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;
    }
}

1
类语法只是语法糖。在 JavaScript 引擎内部,类会被转换为构造函数语法。所以你的讲师是正确的。因此,在两者之间做出决定更多地是基于个人喜好、团队使用情况以及需要支持的浏览器。 - Shilly
或者是 https://dev59.com/GFoV5IYBdhLWcg3wkfa9 的副本。 - Mehdi Benmoha
1
在我看来,一个很好的理由是,当在多个代码编辑器中使用时,JavaScript类通常比构造函数提供更好的智能感知体验。 - Sergeon
1
许多JS增强功能或JS语言“扩展”JS只是语法糖。这并不意味着在实践中使用其中一个与使用另一个没有区别。重复的答案已回答了这个问题。 - davidxxx
1个回答

8

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

更多详细信息,请参见MDN


2
在重复的链接中并没有提到这个!! - Mehdi Benmoha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接