¿Qué sucede si devuelve un objeto al definir un constructor de clase? ¿Puedo usarlo por seguridad y evitar acceder a los métodos de clase y...?
por ejemplo, tengo el siguiente código:
class X { y = '' x = 0 constructor( p1, p2, ) { this.p1 = p1 this.p2 = p2 return { getp1: this.getp1 } } getp1 = () => this.p1 } let x = new X("fo", "bar") console.log(x.p1) // will be undefined console.log(x.getp1() ) // will be "fo" como puede ver, x.p1 no es accesible directamente, pero puedo obtener p1 mediante el método getp1 . ¿Puedo usarlo para métodos private y public en javascript?
Este sería un mejor enfoque.
Puede usar # para hacer que una propiedad o un método sea "privado", lo que significa que solo se puede acceder a él mediante métodos o propiedades dentro de esa clase. el siguiente código demuestra su uso
class Test { #privateValue; constructor() { this.#privateValue = 10; } test() { return this.#privateValue; } } const test = new Test(); console.log(test.privateValue) console.log(test.test())