当我使用Ember CLI和ES6语法export default something
时,我真的想知道我的导出中的something
是否是Ember.Object。我可以检查对象以确保它是Ember.Object或扩展Ember.Object?
// app/repos/wat.js
import Ember from "ember";
var wat = Ember.Object.extend({
doSomething: function() {
console.log("do stuff");
}
});
export default wat;
// app/utils/wat.js
import Ember from "ember";
import wat from "../repos/wat";
console.log(wat instanceof Ember.Object);
// console.log above returns false
答案 0 :(得分:4)
只需使用instanceof
:
import SomeObject from 'some-place';
var isEmberObject = SomeObject instanceof Ember.Object;
编辑:对不起,我回答得太快了。该版本仅适用于实例,而不适用于类。要检查某个类是否扩展Ember.Object
,您可以执行此操作:
import SomeClass from 'some-other-place';
var isEmberClass = SomeClass.prototype instanceof Ember.Object
您还可以使用isPrototypeOf:
import SomeClass from 'some-other-place';
var isEmberClass = Ember.Object.prototype.isPrototypeOf(SomeClass.prototype);