js的组合继承

 组合式继承是最js中最常用的继承方法,它融合了“原型继承”和“借用构造函数继承”的优点,使它拥有了这两种继承所具备的功能:

1、子类可以为父类的构造函数传参。

2、子类修改从父类继承的引用类型属性,不会影响到其他子类。

具体实现方法如下:


    //构造方法
   function Animal (name,age){

    this.name=name;
    this.age=age;
    this.color=["red","blue","yellow"]
    //对象方法
    this.sleep=function() {
        console.log(this.name+" 正在睡觉zzzz")
    }
   }
   //类方法
   Animal.Run=function () {
       console.log(this.name+" 可以跑");
    }
   //原型方法
   Animal.prototype.bite=function () {
       console.log(this.name+" bite...")
   }

   function Cat(name,age) {
       Animal.call(this,name,age);

   }
   Cat.prototype=new Animal();
   Cat.prototype.constructor=Animal;

   var cat=new Cat("LULU",3);
    cat.color.push("pink");
    console.log(cat.color);//["red","blue","yellow","pink"]
   cat.sleep();   //LULU 正在睡觉zzzz
  Animal.Run();  //Animal 可以跑
   cat.bite();   //LULU bite...


   function Dog(name,age){
       Animal.call(this,name,age)
   }
    Dog.prototype=new Animal();
   Dog.prototype.constructor=Animal;

   var dog=new Dog("Jerry",4);
    console.log(dog.color)  //["red","blue","yellow"]
   dog.sleep(); //Jerry 正在睡觉zzzz
   dog.bite();  //Jerry bite...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值