JavaScript Herencia pseudo-clásica


Ejemplo

Es una emulación de la herencia clásica utilizando la herencia prototípica que muestra qué tan poderosos son los prototipos. Fue hecho para hacer que el lenguaje sea más atractivo para los programadores que vienen de otros idiomas.

6

NOTA IMPORTANTE : desde ES6 no tiene sentido usar herencia pseudocálica ya que el lenguaje simula clases convencionales . Si no estás usando ES6, deberías . Si aún desea utilizar el patrón de herencia clásico y está en un entorno ECMAScript 5 o inferior, entonces su mejor apuesta es pseudo-clásica.

Una "clase" es solo una función que está diseñada para ser llamada con el new operando y se usa como un constructor.

function Foo(id, name) {
    this.id = id;
    this.name = name;
}

var foo = new Foo(1, 'foo');
console.log(foo.id);

Salida de consola

1

foo es una instancia de Foo. La convención de codificación de JavaScript dice que si una función comienza con mayúsculas y minúsculas, se puede llamar como un constructor (con el new operando).


Para agregar propiedades o métodos a la "clase", debe agregarlos a su prototipo, que se puede encontrar en la propiedad prototype del constructor.

Foo.prototype.bar = 'bar';
console.log(foo.bar);

Salida de consola

bar

De hecho, lo que Foo está haciendo como "constructor" es simplemente crear objetos con Foo.prototype como su prototipo.


Puedes encontrar una referencia a su constructor en cada objeto.

console.log(foo.constructor);

función Foo (id, nombre) {...

console.log({ }.constructor);

Función Objeto () {[código nativo]}

Y también verifique si un objeto es una instancia de una clase dada con el operador instanceof

console.log(foo instanceof Foo);

cierto

console.log(foo instaceof Object);

cierto