¡Necesito algo de luz aquí, por favor! Entiendo que todo lo que está dentro de la función constructora se llama con la nueva palabra clave y se inicializa. Entonces, como se muestra en el fragmento, a continuación, cuando registro la instancia de mycar, puedo ver el método declarado dentro del constructor pero no el declarado en el cuerpo.
entonces la pregunta es: 1) ¿por qué puedo llamar con éxito al método definido en el cuerpo si no está entre las propiedades de la instancia? 2) ¿Por qué declaro los métodos en el cuerpo y no solo dentro del constructor? en el fragmento de abajo ambos están funcionando
class car { constructor(_brand, _year, _color) { this.brand = _brand; this.year = _year; this.color = _color; // a method defined inside the constructor-------------------------- this.get_brand_color = function () { return this.brand + this.color; }; } // a method defined in the body of the class----------------------------- get_brand_year() { return this.brand + this.year; } } mycar = new car("chevrolet ", 1997, "red"); console.log(mycar); // logs: car {brand: 'chevrolet ', year: 1997, color: 'red', get_brand_color: ƒ} console.log(mycar.get_brand_year()); // logs:chevrolet 1997 console.log(mycar.get_brand_color()); // logs:chevrolet red