Es6 class的基本用法

   class apple {
      constructor(color,name){
        this.color = color
        this.name = name
      }
      saize(size){
        console.log(this.color+this.name+'苹果的大小是'+size);
      }
      sayhi(){
        console.log(this.color+this.name);
        return this.color+this.name
      }
    }
   let a = new apple('red') // 实例化这个apple
    a.saize(10) // 调用saize方法
    let b = new apple('red','红富士')
    b.sayhi()

    class pear extends apple{ // pear继承父类apple
      constructor(color,type){
        super(color) // 调用父类的构造函数中的color,没有调用的name
        this.type = type
      }
      sayHello(){
        console.log('你好',this.type);
        
      }
    }
    let c = new pear('红色','红色的苹果')
  c.saize() // 调用父类的方法中的saize方法(构造函数中没有调用的name会打印为undefined)
  c.sayHello()  // 调用pear中的sayHello方法

ES6 规定,子类必须在constructor()方法中调用super(),否则就会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,添加子类自己的实例属性和方法。如果不调用super()方法,子类就得不到自己的this对象。

另一个需要注意的地方是,在子类的构造函数中,只有调用super()之后,才可以使用this关键字,否则会报错。这是因为子类实例的构建,必须先完成父类的继承,只有super()方法才能让子类实例继承父类。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值