使用Ember CLI和ES6语法`export default`我怎么知道导出是否是Ember.Object

时间:2015-04-09 01:32:23

标签: ember.js ember-cli

当我使用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

1 个答案:

答案 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);