Итак, пусть у меня был класс в Backbone:Определите, если класс JavaScript расширяет другой класс
var MyModel = Backbone.Model.extend({});
Использование оператора InstanceOf я мог проверить продлен ли экземпляр объекта объект:
var instModel = new MyModel();
instModel instanceof MyModel; // true
instModel instanceof Backbone.Model; // true
Я d хотел бы проверить наследование без создания экземпляра объекта. Есть ли средство в JavaScript или Backbone, чтобы определить, расширяет ли объект без объекта? Так как:
MyModel instanceof Backbone.Model; // false
MyModel instanceof Function; // true
Хорошее решение. Я знал, что это должно быть что-то простое. Чтобы прояснить будущее читателей, это пропустит один большой случай. 'MyModel.prototype instanceof MyModel' потерпит неудачу. Таким образом, надежная производственная проверка будет выглядеть так: (testModel! == ClassToCheck) && (testModel.prototype instanceof ClassToCheck) ' – stakolee
@stakolee True! Я думал о добавлении примечания об этом и отказался, но, поскольку вы упомянули об этом, я обновил ответ двумя вариантами. – loganfsmyth