通过 new 创建的每个对象将最终被 [[Prototype]] 链接到这个函数的 prototype 对象上。
如果函数没有返回对象类型 Object (包含 Functoin, Array, Date, RegExg, Error),那么 new 表达式中的函数调用将返回该对象引用。
functionNew(func){var res ={};if(func.prototype !==null){
res.__proto__ = func.prototype;}var ret = func.apply(res, Array.prototype.slice.call(arguments,1));if((typeof ret ==="object"||typeof ret ==="function")&& ret !==null){return ret;}return res;}var obj =New(A,1,2);// equals tovar obj =newA(1,2);