构造函数和类有什么区别?

D. *_*dal 5 javascript ecmascript-6

所以我打算建立一个小型图书馆,但这个问题有多种应用。

我想知道使用构造函数和类创建对象之间的区别。例如,这段代码...

function Thing (name) {
    this.name = name;
    this.doSomething = function (){};
    alert("A new thing was created.");
}

var x = new Thing();
Run Code Online (Sandbox Code Playgroud)

...以及这段代码...

class Thing {
    constructor(name) {
        this.name = name;
        alert("A new thing was created.");
    }
    doSomething() {}
}

var x = new Thing();
Run Code Online (Sandbox Code Playgroud)

...产生相同的结果,但以不同的方式。

但是,我更熟悉构造函数,但我需要使用 getter 和 setter 创建对象。尽管MDN将类定义为“语法糖”,但我不知道是否可以使用构造函数定义 getter 和 setter。

还有,女巫的性能是最好的?

注意:我不是指使用Thing.prototype. 我想知道构造函数和类之间的区别。