class类继承

class类定义

    // 1 class类的定义
    class Cat{
      constructor(x) {  // 相当于构造函数
        this.name = x  // 实例对象的自身属性
        this.pp = function() {}  // 实例对象的自身的方法
      }
      xx = '呵呵'  // 实例对象的自身属性 -- 所以一般属性写在构造器里面
      hh() {}  // 实例对象原型上的方法
      kk() { console.log('kk方法 --- 欢喜')}
      static a1() {console.log(66)}  // ES6中给类添加 1个静态方法 -- static关键字
    }

    // 2 创建实例对象
    let cat = new Cat('哈哈')

    // 3 访问实例对象
    console.log(cat.name)
    console.log(cat.xx)
    cat.kk()
    console.log(cat)  // constructor 指向--> class Cat
    console.log(cat.__proto__)  // 指向--> Cat.prototype
    Cat.a1()  // 静态方法只能通过 Cat类来访问 -- 实例对象是访问不到的 -- 整个原型链上都没有

class类继承

继承上面定义的类  
	// class类的定义+继承
    class Dog extends Cat{  // Dog 继承了 Cat 这个类 -- Dog表示子类, Cat 为父类
      constructor(f, x) { // 此处应在子类参数后面 -- 加上父类的参数
        super(x)  // 子类中使用 this之前, 一定要先执行这个方法 (否则报错) -- 参数为父类的参数
        this.food = f
        // console.log(this.xx) //呵呵 -- 知道就行
        // this.kk() // kk方法 --- 欢喜 -- 知道就行

      }
    }

    // 2 创建实例对象
    let dog = new Dog('骨头', '狗')
    
    // 3 访问子类的属性
    console.log(dog.food)  // 可以正常定义自己的类
    dog.kk()  // 可以访问父类的方法
    console.log(dog.name)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值