ES6类:在超级方法中获取子类的正确名称
ES6 Classes: Get the proper name of a subclass in a super method
假设我有以下内容:
class ThingWithWheels {
constructor( numWheels ) {
this.numWheels = numWheels
}
toString() {
return this.constructor.name;
}
}
class Car extends ThingWithWheels {
constructor( color ) {
super(4);
this.color = color;
}
toString() {
return `${this.color} ${super.toString()}`;
}
}
这是非常标准的面向对象编程。然而,在NodeJS v5.6.0中,如果我制造了一辆红色汽车,并调用toString()
,它将给出Red ThingWithWheels
,而不是Red Car
。当我调用super方法时,它将this
视为ThingWithWheels
,而不是Car
。
- 为什么会这样
- 有没有一种方法可以让超级方法正确命名
我刚刚在node.js 5.10.1中尝试过,它给了我"红色汽车",所以它可能是5.6中的一个错误。
相关文章:
- 是否可以从父类访问子类的属性
- 如何将变量数据从Java类获取到JavaScript
- 子类访问父类's闭包变量
- Javascript关键字搜索子类Div值
- 如何通过Prototype或jquery移除子类的父类基类
- JavaScript数组的子类化破坏了快速枚举
- 从子级获取React dom组件
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 具有子类的构造函数中的Object.freeze
- 如何使用正则表达式按类获取svg元素
- 如何在单击父类的另一个子类时获取子类的值
- ES6类:在超级方法中获取子类的正确名称
- 如何使用jquery获取父ID的子类
- 跨浏览器的方式来子类JavaScript Array并获取array[i]方法
- 当我有父 JQuery/JS 的类名称时,如何从子 ID 获取 ID 父级
- 如何在JS中获取元素的子类
- 如何获取对象's类名,当它是子类的实例时
- 使用类和子类获取元素索引
- 从子类获取数据
- jQuery从数组中获取、存储和使用子类元素