javascript - 这段代码这个地方是什么意思,有些不太明白

查看:103
本文介绍了javascript - 这段代码这个地方是什么意思,有些不太明白的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function person(name){
          this.name=name;
      }
      person.prototype.getName=function(){
          return this.name;
      }
      var objectFactory=function(){
          
          var obj=new Object(),Constructor=[].shift.call(arguments);//这个地方不是太懂
          obj._proto_=Constructor.prototype;
          var ret=Constructor.apply(obj,arguments);
          return typeof ret==='object'?ret:obj;
      };
      var a=objectFactory(person,'sven');

最近在看原型继承,看到这个demo的时候不太明白,希望大神能指点一下。

解决方案

objectFactory是工厂方法,是用来批量生产某个类的示例对象的。这里的某个类,就是由第一个objectFactory的第一个参数决定的。Constructor=[].shift.call(arguments)这行代码,就是取出第一个参数,也就是上面所讲的某个类。至于var obj=new Object();obj._proto_=Constructor.prototype;这两句,比较新的写法是var obj = Object.create(Constructor.prototype)。因为你这个不是直接new出来的,所以要用__proto__Object.create。需要注意的是,var ret=Constructor.apply(obj,arguments);这行代码中的arguments对象已经被shift操作过咯,在上例中,此时的arguments是'sven'。

这篇关于javascript - 这段代码这个地方是什么意思,有些不太明白的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆