Me encontré con una pregunta #83 en https://github.com/lydiahallie/javascript-questions
function Car() { this.make = 'Lamborghini'; return { make: 'Maserati' }; } const myCar = new Car(); console.log(myCar.make); Según tengo entendido, el código debería registrar 'Lamborghini' y conso;e.log(myCar().make) debería registrar 'Maserati' Pero estoy totalmente equivocado, myCar no es una función. ¿Por qué?
Si tiene la intención de usar su función como constructor, no necesita devolver nada. Cuando invoque su función con una new palabra clave, Javascript creará un nuevo objeto debajo del capó, vincúlelo a this y lo devolverá de forma predeterminada