登录
首页 >  文章 >  前端

ES6中static方法和super关键字是如何影响继承关系的?

时间:2024-12-20 18:48:48 188浏览 收藏

在文章实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《ES6中static方法和super关键字是如何影响继承关系的?》,聊聊,希望可以帮助到正在努力赚钱的你。

ES6中static方法和super关键字是如何影响继承关系的?

为什么es6会输出这个结果?

在es6中,static方法属于类本身而不会被实例拥有。在以下代码中:

child.mymethod(1);

调用的是child的static mymethod,因此输出static 1。

var child = new Child();
child.myMethod(2);

调用的是child实例的mymethod,super.mymethod(msg)被解释为调用父类parent的mymethod,因此输出instance 2。

程序执行流程:

  1. 创建parent类,其中有一个static mymethod和一个实例mymethod。
  2. 创建child类,它是parent类的子类,也定义了static mymethod和实例mymethod。
  3. 调用child的static mymethod,输出static 1。
  4. 创建child为child类的实例。
  5. 调用child的mymethod,输出instance 2。

super关键字:

super关键字用于访问父类的方法或属性:

  • 在static方法中,super指向父类的static方法。
  • 在实例方法中,super指向父类的实例方法。

因此,在child类的static mymethod中,super.mymethod(msg)调用parent类的静态mymethod。而在child类的实例mymethod中,super.mymethod(msg)调用parent类的实例mymethod。

今天关于《ES6中static方法和super关键字是如何影响继承关系的?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>