当我从构造函数(new)显式返回一个对象(或者从Object派生的东西)时,它会忽略新创建的对象实例并返回我告诉它的内容,但是当我返回一个原始数据类型(如数字或一个字符串,它忽略我的显式返回并返回新实例。有人知道为什么吗?我不认为它是JS引擎中的一个错误,因为我在firefox,safari和chrome中尝试过它,它们都表现得一样。
function Fun1(){
return {Hats: 5};
}
Fun1(); // => {Hats: 5};
new Fun1(); // => {Hats: 5};
function Fun2(){
return 5;
}
Fun2(); // => 5;
new Fun2(); // => Fun2 {};