
Daniel André Amaya López
PreguntaTengo una duda.
¿Cuál es la diferencia de declarar una función dentro y fuera del prototipo o como otros lo conoce constructor?
¿Alguna resulta ser mejor que otra?
Ejemplo 1
function persona(nombre, apellido, edad, altura) { this.nombre = nombre; this.apellido = apellido; this.altura = altura; //Función this.soyAlto = function () { this.altura > 1.8 ? console.log(`${this.nombre} es alto`) : console.log(`${this.nombre} no es alto`); }; }
Ejemplo 2
function persona(nombre, apellido, edad, altura) { this.nombre = nombre; this.apellido = apellido; this.altura = altura; } //Función persona.prototype.soyAlto = function () { this.altura > 1.8 ? console.log(`${this.nombre} es alto`) : console.log(`${this.nombre} no es tan alto`); };

Fabricio Micheli
Es lo mismo, lo estás haciendo simplemente por separado en el segundo caso, llamando al prototipo del objeto persona. Te recomiendo el uso de clases disponible a partir de Ecmascript 6, que es más parecido al sistema de clases que utilizan otros lenguajes de promogramación que usan el paradigma OOP. Igualmente, recuerda que JS siempre usa prototipos, a pesar de estas mejoras en la sintaxis. Pero es más simple para trabajar! y más claro para entender.