En el siguiente ejemplo, el constructor Bird define dos propiedades: name y numLegs:
function Bird(name) { this.name = name; this.numLegs = 2; } let duck = new Bird("Donald"); let canary = new Bird("Tweety");name y numLegs se denominan propiedades propias, porque se definen directamente en el objeto de instancia. Eso significa que el pato y el canario tienen cada uno su propia copia separada de estas propiedades. De hecho, cada instancia de Bird tendrá su propia copia de estas propiedades.
Dado que numLegs probablemente tendrá el mismo valor para todas las instancias de Bird, esencialmente tiene una variable duplicada numLegs dentro de cada instancia de Bird.
Esto puede no ser un problema cuando solo hay dos instancias, pero imagínese si hay millones de instancias. Eso sería un montón de variables duplicadas.
Una mejor manera es usar el prototipo de Bird. Las propiedades del prototipo se comparten entre TODAS las instancias de Bird. Aquí se explica cómo agregar numLegs al prototipo Bird:
Bird.prototype.numLegs = 2;Ahora todas las instancias de Bird tienen la propiedad numLegs.
console.log(duck.numLegs); console.log(canary.numLegs);Mi pregunta: "Esto puede no ser un problema cuando solo hay dos instancias, pero imagínese si hay millones de instancias. Serían muchas variables duplicadas".
¿Cuál es el problema de tener variables duplicadas? ¿Es que ocupan la memoria? ¿Y ralentiza su programa?
Gracias por adelantado :)