Por Clases en MDN
Las clases son de hecho "funciones especiales"
como seria algo
class Foo { constructor(x) { this.x = x; } foo() {} } traducirse a solo function (ignorando la función de "elevación")
// declare the "class" function Foo (x) { this.x = x; } // declare the instance method Foo.prototype.foo = function () { return 'i am foo'; } // create an instance const f = new Foo(42); // invoke its methods console.log(f.foo()); // 'i am foo' // access its properties console.log(fx); // 42Non hoisted (tanto como las funciones constructoras basadas en la sintaxis de clase no son hoisted) debido a una expresión de función invocada inmediatamente (IIFE) que sirve como patrón de módulo...
const Foo = (function () { // class Foo { // function Foo(x) { // constructor(x) { this.x = x; // this.x = x; } // } function foo() { // foo() { } // Foo.prototype.foo = foo; // } // return Foo; // // }()); // }Bueno, realmente todo son objetos: una clase es simplemente un modelo para un objeto que tiene algunos métodos y algunos valores. Son todos los objetos con características que pueden almacenar valores o transformar valores.
Una clase es algo, una función hace algo. Llamarlo una función especial es, en el mejor de los casos, innecesario y confuso en el peor.
Básicamente, no te preocupes por eso.