我有两个类:
class Bar extends Foo { // Foo isn't relevant
constructor(value) {
if (!(value instanceof Foo)) throw "InvalidArgumentException: (...)";
super();
this.value = value;
}
}
class Baz extends Bar {
constructor(value) {
super(value);
}
}
Bar
构造函数检查value
是否是Foo
的实例,如果不是则抛出错误。至少,这是我想让它做的。如果你传递一个Bar
或Baz
作为值,if语句也会返回true
。目标是只允许Foo
通过。我已经找到这个答案,但那并没有真正回答我的问题。
new Foo()
创建的Foo对象调用foo.constructor.name
时才会返回“ Foo”。 - SystemGlitchBar
和Baz
实例都应该在你想要一个Foo
实例的地方有效。 - Bergi