### 思考
当构造函数有返回值时呢?
如果返回值是一个对象,我们就返回这个对象,如果没有,我们返回生成的对象。
最终版
```js
function foo(){
var obj = new Object();
var constructor = Array.prototype.shift.call(arguments)//构造函数
obj.__proto__ = constructor.prototype;
var result = constructor.apply(result, arguments);
return result instanceof Object ? result : obj;
}
new原理
}