我有两个扩展了同一个父类的类,如下所示:
class parentClass{ ... }
class son extends parentClass{ ... }
class daughter extends parentClass{ ... }
我想要类似的代码:
typeof a === typeof b
仅当两个变量都是相同派生类的实例(例如,在此示例中为son
或daughter
时,才返回true。
我想要类似的代码:
typeof a === typeof b
仅当两个变量都是相同派生类的实例(例如,在此示例中为
son
或daughter
时,才返回true。
否,如果a
和b
是any类型的对象(包括与parentClass
完全无关的对象),则返回true,因为对于任何对象,typeof
均为"object"
,当然,"object" === "object"
为true。
[instanceof
返回true
,如果左侧操作数的原型链包含右侧操作数.prototype
属性所引用的对象,因此instanceof
将按照您描述的方式工作:
a instanceof parentClass === b instanceof parentClass
实时示例(使用标准名称):
class ParentClass { }
class Son extends ParentClass { }
class Daughter extends ParentClass { }
const a = new Son();
const b = new Daughter();
console.log(a instanceof ParentClass === b instanceof ParentClass);