Soy un poco principiante, solía conocer los conceptos básicos, pero dejé de programar después de eso.
En la herencia prototípica de JavaScript, encontré/aprendí dos formas de hacer esto.
Usando la propiedad prototype de un constructor:
function Mammal(name) { this.name = name, this.order = "Mammal", this.sayHi = function() { console.log("My name is " + this.name); } } function Cat(name) { this.name = name; this.family = "Felidae"; } Cat.prototype = new Mammal(); let lion = new Cat("Lion"); O llamando al Mammal.call(this, name) .
¿Cuáles son las diferencias entre los dos resultados? ¿Cuál es preferible si son diferentes?
Por lo general, usamos la palabra clave de class para definir una clase en muchos lenguajes de programación. En Javascript puede definir sus clases usando una sintaxis simple y clara usando la palabra clave class .
O puede usar las dos formas que mencionó, puede usar la palabra clave class :
class Mammal { constructor(name) { this.name = name; this.order = 'Mammal'; } sayHi() { console.log('My name is ' + this.name); } } class Cat extends Mammal { constructor(props) { super(props); this.family = 'Felidae'; } } let lion = new Cat('Lion'); lion.sayHi();