function Person1(name) {
this.name = name;
}
function Person2(name) {
this.name = name;
return this.name;
}
function Person3(name) {
this.name = name;
return new Array();
}
function Person4(name) {
this.name = name;
return new String(name);
}
function Person5(name) {
this.name = name;
return function() {};
}
var person1 = new Person1('xl'); // {name: 'xl'}
var person2 = new Person2('xl'); // {name: 'xl'}
var person3 = new Person3('xl'); // []
var person4 = new Person4('xl'); // 'xl'
var person5 = new Person5('xl'); // function() {}
what has happened in new operator in javascript on earth? Especially the difference between person1 and person2.