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);