悟透javascript 读后小记...

最近在读悟透javascript  ,作者李战大师把甘露原型写的真棒,我用了一晚上时间去理解消化,终于消化了一部分,也许是偶太笨了,居然用了那么久,反复看,最后很多地方不明白就到群里咨询,多亏jquery群得 “天满流云,一路彷徨”2位老大的帮忙,让我对javascript prototype有了进一步的了解. 不废话了,出代码吧~ 本来甘露原型是有接口方法的,因为我现在项目不需要接口,继承类,所以我去掉了,只是针对项目做了简单的改写~~

var Person = Class({
   create1: function (name) {
    this.name = name;
   },
   sayhello: function () {
    alert('sayhello:' + this.arg[0])
   }
  });
  function Class() {
   var defines = arguments[arguments.length-1]; //读取最后一个作为类
   if(!defines) return;

   function prototype_() {}//构造临时函数
   var aPrototype = new prototype_();//建立类要用到的对象.

   for(var member in defines) {//复制类到临时函数 过滤create
    if (member != 'create') {
     aPrototype[member] = defines[member]
    }
   }

   if (defines.create) {//如果构造函数存在就直接用
    var aType = defines.create;
   } else {//不存在 则建立构造函数
   var aType = function () {
     /*
     * 遍历 参数
     * 接收形势 this.arg[0]
     **/ 
     var arg = [];
     for(var i=0, max=arguments.length; i<max; i++) {
      arg[i] = arguments[i];
     }
     this.arg = arg;
     
    }
   }
   
   aType.prototype = aPrototype;//将类 继承到构造函数
   return aType;//返回create 函数,这里已经 create已经有相关继承类了,返回函数直接实例化即可.
  }

  var P = new Person('zhangliang', '11', '22');
  P.sayhello();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值