检查 ember 数据模型是否是另一个模型的子类

Check if an ember-data model is a subclass of another model

如何检查 class 是否是另一个的子class,因为我只能访问构造函数而不是实例?

//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);

有办法吗?

没有超级漂亮的方法,但是构造函数上的 superclass 具有从 class 扩展而来的超级 class。

var dogIsSubClass = Dog.constructor.superclass == Animal.constructor;

您也可以使用 instanceof(如果您有对 Animal class 本身的引用最简单,而不需要记录)。

var dogIsSubClass = Dog instanceof Animal.constructor;