ES5 / ES6 的继承除了写法以外还有什么区别

简介: ES5 / ES6 的继承除了写法以外还有什么区别

ES5 的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到 this 上(Parent.apply(this))

  • ES6 的继承机制完全不同,实质上是先创建父类的实例对象 this(所以必须先调用父类的 super()方法),然后再用子类的构造函数修改 this。
  • ES5 的继承时通过原型或构造函数机制来实现。
  • ES6 通过 class 关键字定义类,里面有构造方法,类之间通过 extends 关键字实现继承。
  • 子类必须在 constructor 方法中调用 super 方法,否则新建实例报错。因为子类没有自己的 this 对象,而是继承了父类的
    this 对象,然后对其进行加工。如果不调用 super 方法,子类得不到 this 对象。
  • 注意 super 关键字指代父类的实例,即父类的 this 对象。
  • 注意:在子类构造函数中,调用 super 后,才可使用 this 关键字,否则报错。function 声明会提升,但不会初始化赋值。Foo
    进入暂时性死区,类似于 let、const 声明变量


相关文章
|
12月前
|
安全
ES5/ES6 的继承除了写法以外还有什么区别
ES5 和 ES6 的继承主要区别在于实现机制和语法糖。ES5 通过原型链和构造函数模拟类的继承,而 ES6 引入了 class 关键字,使继承更加直观和简洁,支持 super 调用父类方法,提升了代码可读性和维护性。
|
Linux
亚马逊云服务器AWS安装CentOS
亚马逊云服务器默认创建的实例,在停止之后再启动的情况下,IP会发生改变。所以我们最好先创建一个弹性IP,即EIP,不过我也不清楚这个费用。 1、按如图操作创建一个弹性IP,弹性IP创建之后可以随便绑定到该region下的实例 2、创建好弹性IP之后,然后去创建实例: 3、点启动实例之...
3429 0
|
存储 编译器 Go
Go语言中的逃逸分析
Go语言中的逃逸分析
|
缓存 网络协议 前端开发
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么
一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么
334 0
ES5的继承和ES6的继承有什么区别
ES5的继承和ES6的继承有什么区别
151 0
|
Go 开发者 索引
100天精通Golang(基础入门篇)——第13天:深入解析Go语言中的字符串(string)及常用函数应用
100天精通Golang(基础入门篇)——第13天:深入解析Go语言中的字符串(string)及常用函数应用
206 0
|
缓存 JSON 前端开发
✨✨✨ ServiceWorker 让你的网页拥抱服务端的能力
ServiceWorker 是一个运行在浏览器背后的独立线程,它拥有访问网络的能力,可以用来实现缓存、消息推送、后台自动更新等功能,甚至可以用来实现一个完整的 Web 服务器。
524 0
✨✨✨ ServiceWorker 让你的网页拥抱服务端的能力
|
消息中间件 Dubbo Java
大厂必刷!国内顶级“Java面试总汇2023”跳槽底气 统计通过率95%
金九银十即将开始。不知现在有多少小伙伴找到自己满意的工作了。今年的面试比以往几年的都要多些难度。随着学习it的人越来越多竞争也是越来越多,越来越卷。
|
Web App开发 缓存 前端开发
🎊🎊🎊深入 ServiceWorker,消息推送,后台同步,一网打尽!
上一章讲到了ServiceWorker的基础使用,但是它的功能不仅仅只有这些,还有很多很多,比如消息推送,后台同步,甚至还有WebRTC,这一章我们来进阶ServiceWorker。
674 0