Constructors Don't Construct Instances When They Return Objects
Please look at the examples below.
I checked these in Chrome, Node.js and Firefox.
When the Constructor Doesn't Return an Object
function Person(name, age) {
this.name = name;
let _age = age;
return _age;
}
console.log(new Person('Bada', 29));
// Person { name: 'Bada' }
The constructor does not return what it returns (_age) and makes an instance.
When the Constructor Returns an Object
function Person(name, age) {
this.name = name;
return { age: age };
}
console.log(new Person('Bada', 29));
// { age: 29 }
The constructor does not make the instance and returns what it returns ({ age: 29 }).