JavaScript:如果原始值,则忽略显式构造函数返回

时间:2014-05-03 21:58:16

标签: javascript

当我从构造函数(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 {};

0 个答案:

没有答案