new function 到底做了什么?如何自己实现new function

前言

这是继function 与 Function 关系后写下的。
写这个起源于,我无聊的时候看到一道题目:

'foo' == new function() { var temp=String('foo'); return temp;  };
'foo' == new function() { var temp=new String('foo'); return temp;};

答案是false,与true。

正文

模拟new function实现部分。

function constructor(ourCode)
{
  var obj={};
  var result=ourCode.call(obj);
  if(result.constructor===Object)
  {
    return result;
  }
  return obj;
}

var newojb= constructor(function(){
this.name="dsds";
return "";
});
console.log(newojb);

猜你喜欢

转载自www.cnblogs.com/aoximin/p/12370503.html