Estoy tratando de declarar una variable de clase privada para una superclase y parece que tengo problemas para hacerlo. ¿Hay algo que me estoy perdiendo? Este es mi código hasta ahora.
class Animal { constructor(_name) { this._name = _name; } name() { console.log(`${this._name} is my name.`); } } new Animal('Bob').name();Los campos privados comienzan con # pero su alcance los mantendrá ocultos de las subclases.
class Animal { #name constructor(name) { this.#name = name; } }https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields
Las funciones de clases privadas están disponibles en los siguientes navegadores:
| Cromo | Borde | zorro de fuego | Ópera | Safari |
|---|---|---|---|---|
| 74+ | 79+ | 90+ | 62+ | 14.1+ |
Aquí hay un ejemplo de su clase con un campo de instancia privado llamado name :
class Animal { #name; constructor(name) { this.#name = name; } get name() { return this.#name; } toString() { return `${this.#name} is my name.`; } } const bob = new Animal('Bob'); console.log(bob.name); console.log(bob.toString()); // console.log(bob.#name); <-- SyntaxError