instanceof接受字符串作为我的类型类Javascript的实例
当type是字符串时,下面的if语句的计算结果为true,我似乎不知道为什么。这是我的代码:instanceof接受字符串作为我的类型类Javascript的实例,javascript,class,instanceof,Javascript,Class,Instanceof,当type是字符串时,下面的if语句的计算结果为true,我似乎不知道为什么。这是我的代码: const validateType = (instanceDescription, type) => { if (!type instanceof Type) { throw new Error(`type property of ${instanceDescription} is not a (child) insta
const validateType = (instanceDescription, type) => {
if (!type instanceof Type) {
throw new Error(`type property of ${instanceDescription} is not
a (child) instance of class Type`);
}
}
我看不出这个问题在我的课堂上,因为它真的很简单。看起来像这样
class Type {
constructor(key, multipliers) {
this.multipliers = multipliers;
this.key = key;
}
}
比较的瞬间是否发生了我不知道的事情,或者我只是疯了。我通过检查某个属性是否未定义(它将用于字符串)来解决这个问题,但我更愿意选择更清晰的instanceof选项,因为括号在这里会有所不同<代码>的优先级高于
instanceof
,因此不带括号,您的测试将询问false
是否为类型的实例:
类类型{
构造函数(键、乘数){
这个。乘数=乘数;
this.key=key;
}
}
让t=“somestring”
如果(!(t instanceof Type)){/括号在此处起作用,因为。!
的优先级高于instanceof
,因此不带括号,测试将询问false
是否为Type
的实例:
类类型{
构造函数(键、乘数){
这个。乘数=乘数;
this.key=key;
}
}
让t=“somestring”
如果(!(类型的t实例)){//更准确地说,是哪种语言?没有标记来标记该语言。您可以添加如何调用validateType
函数,以及使用什么参数吗?更准确地说,是哪种语言?没有标记来标记该语言。您可以添加如何调用validateType
函数,以及使用什么参数吗埃特斯?