寄生组合式继承

           //实现了对o的一次浅复制
          function object(o) {
             function F(){}
             F.prototype = o;
             return new F();
          }
          //subType:子函数名,superType:父函数名。
          function inheritPrototype(subType,superType){
             var o = object(superType.prototype);
             o.constructor = subType;
             subType.prototype = o;
          }
          //父函数,使用构造模式设置变量,原型模式设置方法。
          function animal(name) {
             this.name = name;
             this.data = ["1","2"];
          }
          animal.prototype.sayName = function() {
             alert("我叫"+this.name);
          };
          //子函数:构造模式
         function cat(name,age) {
            animal.call(this,name);
            this.age = age;
         }
         //寄生式模式
         inheritPrototype(cat,animal);
         //原型模式
         cat.prototype.action = function() {
            alert("我能吃" + this.age + "条鱼");
         };
         var cat1 = new cat("小花猫",1);
         var cat2 = new cat("小肥猫",3);
         cat1.sayName();         //我叫小花猫
         cat2.sayName();         //我叫小肥猫
         cat1.action();         //我能吃1条鱼
         cat2.action();         //我能吃3条鱼
         cat1.data.push("3");   
         alert(cat1.data);      //1,2,3
         alert(cat2.data);      //1,2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值