模拟一个new对象的过程

function Person(){
         this.name=1234;
        // return {};
         }
       Person.prototype.getname=function(){
           console.log(this.name);
           }
       function CreateObj(){
          var fn=[].shift.call(arguments);
          var args=arguments;
          var obj=new Object();
          var ret=fn.apply(obj,args);
          obj.__proto__=fn.prototype;
          return typeof ret ==='object'?ret:obj;
          }
   var a=CreateObj(Person);
   console.log(a);

你可能感兴趣的:(模拟一个new对象的过程)