【发布时间】:2021-09-13 19:27:50
【问题描述】:
在最近的一个项目中,我一直在使用一些对象作为其他对象的键。但是,在这样做之后,它们的类型信息被删除,instanceof 不再正常工作。
MWE:
class Foo {
toString() {
return "FOO";
}
}
var foo = new Foo();
var keyObj = {};
keyObj[foo] = "y";
console.log(foo instanceof Foo); // true
console.log(Object.keys(keyObj)[0].toString()); // prints "FOO" - this *is* a Foo
console.log(Object.keys(keyObj)[0] instanceof Foo); // false
(使用 nodejs 评估)
我的问题是:
- 是什么导致了这种行为?
- 如何解决?
【问题讨论】:
标签: javascript class types