Me preguntaba si alguien podría explicar este ejemplo de los documentos de MDN:
let getDPrivateField; class D { #privateField; constructor(v) { this.#privateField = v; } static { getDPrivateField = (d) => d.#privateField; } } getDPrivateField(new D('private')); //private Entiendo que cada bloque estático se define en la clase y se ejecuta cuando se evalúa la declaración del constructor de la clase. Lo que no entiendo es cómo main tiene acceso a la función de flecha getDPrivateField fuera de su definición dentro del constructor. ¿La clase no crea su propio alcance y las variables declaradas dentro son variables locales? ¿No debería haber dos versiones de getDPrivateField y la que está fuera del constructor de la clase D no está definida?