在最近的一个项目中,我一直在使用一些对象作为其他对象的键。但是,这样做之后,它们的类型信息将被删除,因为它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评估)
我的问题是:
- 是什么导致了这种行为?
- 我如何解决它?