Necesito un poco de ayuda cuando invoco un método privado en mi clase usando hash -> # , aparece un error llamado "Token no válido o inesperado". Entonces necesito saber cómo puedo acceder al método privado o qué está mal en mi código.
este mi codigo:
class Poligono{ constructor(altura, largura){ this.altura = altura this.largura = largura } get area(){ return this.#calcularArea() } #calcularArea() { return this.altura * this.largura } } let var_poligono = new Poligono(50, 60) console.log(var_poligono)y este es un error que me sale:
c:\Users\Mix\Documents\testes\POO-JS\01-Encapsulamento.js:62 devuelve esto.#calcularArea() ^ SyntaxError: token no válido o inesperado
El código no produce ningún error cuando se ejecuta en la última versión de Chrome, así que supongo que es un problema de soporte del navegador. Compruebe https://caniuse.com/?search=private%20methods
Como ya se mencionó, el error indica un problema de compatibilidad del navegador. La lista de compatibilidad muestra el requisito mínimo de versión del navegador para usar el método privado:
Ejecute el siguiente fragmento y el resultado se muestra como 3000 .
class Poligono { constructor(altura, largura) { this.altura = altura this.largura = largura } get area() { return this.#calcularArea() } #calcularArea() { return this.altura * this.largura } } let var_poligono = new Poligono(50, 60) console.log(var_poligono.area) Es posible que vea un error como el siguiente cuando hace clic en el botón Run code snippet :
{ "message": "SyntaxError: private fields are not currently supported", "filename": "https://s...content-available-to-author-only...s.net/js", "lineno": 20, "colno": 24 }Indica que la versión actual de su navegador no es compatible con la ejecución de funciones de clase privada.