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