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...

猜你喜欢

转载自blog.csdn.net/Mahuicool/article/details/86603975
今日推荐