【发布时间】:2015-08-03 10:01:19
【问题描述】:
我在玩 ECMAScript6 类。
我还是不明白为什么下面的代码:
"use strict";
class A {}
class B extends A {}
let b = new B();
console.log(b);
显示:
一个 { }
而不是:
B { }
现场示例:
(function () {
"use strict";
class A {}
class B extends A {
foo() {
}
}
let b = new B();
console.log(b);
})();
Open the console. Works only on very up-to-date browsers (such as Chrome 43+).
如何在 console.log 上获得预期的逻辑输出 B { }?
我是否需要将我的班级名称指定为 "B" ?有没有这样的选项可以传递,或者属性或函数要定义?
T.J. Crowder 明白了:这是 Chrome 上的一个引用错误。
大家,你可以给这个错误加星标以增加它的优先级吗?
【问题讨论】:
-
在 Chrome 44 (OSX) 上测试是这种情况
-
是的,Chrome 43 (Linux) 也是如此。
-
Chrome 45 测试版也是如此。 OSX
-
公平地说,它显示的内容在技术上是正确的,因为 B 的实例也是 A 的实例。要真正检查您可以使用
instanceof。 -
@slebetman:按照这个逻辑,它应该显示
Object {}。
标签: javascript class ecmascript-6 prototypal-inheritance console.log