“类”的继承性

继承性: 先创建一个父类 然后子类继承父类的方法和属性 可以解决重复代码的问题

比如:动物类:猫狗老虎都是动物 可以把动物的共有属性放在动物类中

           对应的动物继承对应动物类的方法和属性 

一、原型链继承 将原型改成对应的对象

    //  动物类 构造函数
    function Animal(name, age, color) {
        console.log(this) //window  
        this.name = name
        this.age = age
        this.color = color
    }
    Animal.prototype.move = function() {
        console.log(this.name + "正在走路")
    }
    Animal.prototype.eat = function() {
            console.log(this.name + "正在吃")
        }
    //  狗 构造函数    想让狗继承动物类的所有属性和方法
    //   ***************  原型链继承 将原型改成对应的对象
    function Dog(name, age, color) {

    }
    Dog.prototype = new Animal("小黑", 2, "黄色")

    Dog.prototype.watch = function() {
        console.log("旺旺旺")
    }
    var d1 = new Dog("旺财", 1, "黑色")
    console.log(d1.name) // 小黑 

二、冒充继承 通过call 和 apply改变this 只能继承构造函数中的属性 不能继承原型里的

   //  老虎 构造函数  
   //  ***************  冒充继承  通过call 和 apply改变this  
   //  只能继承构造函数中的属性 不能继承  原型里的
    function Tiger(name, age, color) {
        this.height = 180
        Animal.call(this, name, age, color)
    }
    Tiger.prototype.chiren = function() {
        console.log(this.name + "正在吃人")
    }
    var t1 = new Tiger("老虎", 2, "花纹")
    console.log(t1.name)  //  老虎

三、组合继承:冒充继承+ 原型继承    将所有的属性和方法都继承了

    function Cat(name, age, color) {
        Animal.call(this, name, age, color)
    }
    Cat.prototype = new Animal()
    Cat.prototype.maimeng = function() {
        console.log(this.name + "正在卖萌")
    }
    var c1 = new Cat("小猫", 2, "花纹")
    console.log(c1)
    c1.move()  //小猫正在走路

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值