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

Using Ember CLI and the ES6 syntax `export default` how do I know if the export is an Ember.Object

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

只需使用instanceof:

import SomeObject from 'some-place';
var isEmberObject = SomeObject instanceof Ember.Object;

编辑:抱歉,我回答得太快了。该版本仅适用于实例,不适用于 classes。要检查 class 是否扩展 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);