De acuerdo con otros lenguajes de programación como c ++, java, etc., privado es algo que no se puede compartir con otras clases, a lo que no se puede acceder directamente usando objetos. La misma regla se aplica también a JavaScript.
Entonces, primero tenemos que ver cómo se crean los métodos privados usando JavaScript. Hay principalmente cuatro palabras clave con las que podemos hacer un método privado en la clase.
- variable
- dejar
- constante
- # (picadillo)
Ejemplo:
Javascript
<script> // class Geek var Geek = function (article, published) { // public member this.programmingLang = "Js"; // private member var topic = "private_method"; var status = published; // private member function var publish = () => { console.log(article); return status; } // calling private member // function inside same class console.log(publish()); }; // Geek1 is object of Geek class var Geek1 = new Geek('ABC', 'YES'); // calling public member outside the class console.log(Geek1.programmingLang); <script/>
Producción:
ABC YES Js
Hay dos desventajas principales de crear el verdadero método privado en JavaScript.
- No se puede llamar al método privado fuera de la clase.
- Crear ineficiencia de memoria cuando se crean diferentes objetos para la misma clase, ya que se crearía una nueva copia del método para cada instancia.
Ejemplo: si llamamos a una función miembro privada fuera de la clase, en ese caso da un error.
Javascript
<script> var Geek = function (article, published) { this.programmingLang = "Js"; var topic = "private_method"; var status = published; var publish = () => { console.log(article); return status; } console.log(topic); }; var Geek1 = new Geek('ABC', 'YES'); console.log(Geek1.programmingLang); console.log(publish()); <script />
Producción:
Pero el siguiente ejemplo da el resultado correcto:
Javascript
<script> class A { // Private field #foo; constructor(foo) { this.#foo = "ABC"; } #privateFun(prefix) { return prefix + this.#foo; } publicFun() { return this.#privateFun(">>"); } } let a = new A(); console.log(a.publicFun()); <script/>
Producción:
>>ABC
Ejemplo: si creamos un objeto diferente para la misma clase, en ese caso cada objeto crea su propia instancia o, por ejemplo, una copia de la función para sí mismo. Entonces, en ese caso, surge el problema de la ineficiencia de la memoria.
Javascript
<script> var Employee = function (name, comp, sal) { this.name = name; this.company = comp; this.salary = sal; // Private method var Sal_increase = () => { this.salary = this.salary + 45000; }; // Public method this.dispalySal = () => { Sal_increase(); console.log(this.salary); }; }; const A = new Employee("A", "dream", 45000); const B = new Employee("B", "young", 6000); const C = new Employee("C", "inspire", 9000); A.dispalySal() B.dispalySal() C.dispalySal() </script>
Producción:
90000 51000 54000
Nota: El código aquí mencionado se puede ejecutar usando HTML interno o una consola.
Publicación traducida automáticamente
Artículo escrito por surbhikumaridav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA