《你不知道的JavaScript》 (下) 读书笔记

本文探讨了ES6中子类构造器的super()调用规则,指出在调用super()之前访问this会引发错误,并解释了ES6前后的变化。通过示例代码展示正确的子类构造器编写方式。

本书属于基础类书籍,会有比较多的基础知识,所以这里仅记录平常不怎么容易注意到的知识点,不会全记,供大家和自己翻阅;

不错,下册的知识点就这么少,非常不推介看下册;

上中下三本的读书笔记:

  1. 《你不知道的JavaScript》 (上) 读书笔记
  2. 《你不知道的JavaScript》 (中) 读书笔记
  3. 《你不知道的JavaScript》 (下) 读书笔记

第三章 代码组织

子类构造器

有个 ES6 子类构造器的限制是:子类构造器中调用 super() 之后才能访问 this;具体原因比较复杂,不过可以归结为初始化你的实例 this 的实际上是父构造器。在 ES6 之前正好相反,this 对象是由子类构造器创建的,然后在子类的 this 上下文中调用父类构造器;

class Foo {
  constructor() { this.a = 1 }
}
 
class Bar extends Foo {
  constructor() {
    this.b = 2        // 报错,this不允许在super()之前调用
    super()            // 交换上一句位置
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值