
ES6 输出解释:父子类方法重写和super调用机制
ES6中输出结果令人疑惑,解析如下:
静态方法
static方法属于类本身,不会被实例拥有。在子类中,static方法调用时,实际调用的是父类的static方法。例如,Child.myMethod(1)调用的是Parent.myMethod(1),输出”static 1″。
实例方法
实例方法属于实例对象,可在对象创建后调用。在子类中,如果存在同名实例方法,调用时会优先调用子类的实例方法。new Child().myMethod(2)调用的是Child.prototype.myMethod(2),输出”instance 2″。
super关键字
super关键字用于访问父类的方法或属性。在static方法中调用super.myMethod时,实际调用的是父类的static myMethod。在实例方法中调用super.myMethod时,实际调用的是父类的实例方法。
因此,在这个例子中:
Child.myMethod(1)调用父类的static myMethod,输出”static 1″。new Child().myMethod(2)调用子类的实例方法,输出”instance 2″。
通过理解父子类方法重写和super调用机制,可以正确理解ES6中这类代码的执行结果。
以上就是ES6 中子类继承父类方法:super 关键字和方法重写是如何工作的?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1497115.html
微信扫一扫
支付宝扫一扫