En este artículo, aprendemos cómo llamar al constructor de una clase principal. Antes del comienzo de este artículo, debemos tener un conocimiento básico de javascript y algunos conceptos básicos de herencia en javascript.
Constructor: los constructores crean instancias de una clase, que comúnmente se denominan objetos. La nueva palabra clave en JavaScript hace que se llame a un constructor cuando se declara un objeto. Un constructor crea un objeto y establece las propiedades del objeto, si existen.
Herencia en javascript: la capacidad de un objeto para acceder a las propiedades y métodos de otro objeto se llama herencia. Los objetos pueden heredar propiedades y métodos de otros objetos. JavaScript hereda propiedades a través de prototipos, y esta forma de herencia a menudo se denomina herencia prototípica.
Palabra clave super en javascript: al ejecutar el método super() en el método constructor, invocamos el método constructor del padre y obtenemos acceso a las propiedades y métodos del padre. solo podemos usar la palabra clave super en la clase secundaria de una clase principal.
Ahora comprendamos a través de ejemplos cómo llamar al constructor de una clase principal.
Ejemplo: En este ejemplo, vamos a tomar dos clases, una es para la clase principal y otra es para la clase secundaria para heredar las propiedades y métodos de la clase principal, por lo que deberíamos usar la palabra clave extends para heredar la clase secundaria. de la clase padre. Luego, dentro del constructor de la clase secundaria, tenemos que llamar al constructor de la clase principal; de lo contrario, el compilador generará un error y le indicará que mencione o llame al constructor dentro del método del constructor de la clase secundaria antes de acceder a esto.
JavaScript
<script> class Geeks { constructor(num1) { this.num1 = num1; } fun() { console.log("Parent class method call"); } } class Myclass extends Geeks { constructor(num1, num2) { // Calling parent class constructor super(num1); this.num2 = num2; } fun() { super.fun(); console.log("child class method call"); } } let obj = new Myclass(1, 2); obj.fun(); </script>
Producción:
Parent class method call child class method call
Ejemplo 2: esto no se puede usar en un constructor de clases secundarias hasta que se haya llamado a super. En ES6, los constructores de subclases deben llamar a super, o deben devolver algún objeto en lugar del que nunca se inicializó. En este ejemplo, la clase Geeks es la clase principal de MyClass y cuando se crea un objeto de tipo MyClass primero llama al constructor MyClass dentro del constructor MyClass, tenemos que llamar al constructor de la clase principal antes de acceder a «este» (objeto propio). Entonces, primero llamó al constructor de la clase principal (clase Geeks) antes de acceder al objeto propio.
JavaScript
<script> class Geeks { constructor(num) { this.num = num; console.log("inside Parent Class constructor"); } } class MyClass extends Geeks { constructor(num1, num2) { super(num1); this.num2 = num2; console.log("inside Child class Constructor"); } } let obj = new MyClass(1, 2); </script>
Producción:
inside Parent Class constructor inside Child class Constructor
Publicación traducida automáticamente
Artículo escrito por debadebaduttapanda7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA