如何检查某个类是否是另一个类的子类我只能访问构造函数而不是实例?
//models/animal.js
export default DS.Model.extend({});
//models/dog.js
import Animal from './animal'
export default Animal.extend({});
现在我需要检查对象是否为Animal类型。
var Animal = store.modelFor('animal');
var Dog = store.modelFor('dog');
//fantasy method
Dog.isSubclassOf(Animal);
有办法做到这一点吗?
答案 0 :(得分:2)
没有超级漂亮的方法,但构造函数上的superclass
具有您的类扩展的超类。
var dogIsSubClass = Dog.constructor.superclass == Animal.constructor;
您也可以使用instanceof(如果您对Animal类本身有引用,则最简单,而不需要记录)。
var dogIsSubClass = Dog instanceof Animal.constructor;