new的作用:
1、先生成一个空的obj
2、将obj.__proto__绑定到构造函数的prorotype
3、将构造函数的this绑定在obj上(执行)
4、如果有对象返回就返回该对象,并将obj丢弃,如果没有或者返回的不是一个对象,就将obj返回。
function newFactory(){
var obj = new Object();
var args = arguments;
fn = args.shift();
obj.__proto__ = fn.prototype;
var result = fn.call(obj,args);
return typeof result === 'object' ? result : obj;
}