当我执行 console.log(object)
时,我希望看到对象类的名称。因此,子类带有其父类的名称似乎相当意外。
"use strict";
class Parent {
constructor () {
}
}
class Child extends Parent {
constructor () {
super();
}
}
class Grandchild extends Child {
constructor () {
super();
}
}
var grandchild = new Grandchild();
console.log(grandchild); // Parent {}
console.log(grandchild.constructor.name); // Grandchild
console.log(grandchild instanceof Parent); // true
console.log(grandchild instanceof Child); // true
console.log(JSON.stringify(grandchild)); // {}
这是预期的行为吗?是 console.log
搞砸了,还是 JavaScript 认为任何后代类的实例首先是根级别类的实例?
最佳答案
console
不是标准的,如您所见 in its MDN entry 。在 ES6 中获取实例的类名的标准方法是使用 instance.contructor.name
。这在 the spec 中有说明。 .
关于javascript - ECMAScript 6 子类打印 parent 姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624094/