【发布时间】:2016-03-21 08:00:07
【问题描述】:
有没有办法检查由AngularJS 工厂创建的对象的实例?
angular.module('so')
.factory('UserFac', function () {
return function (first, last) {
return {
name : first + ' ' + last
};
}
})
.controller('UserCtrl', function (User) {
var user = new UserFac('John', 'Doe');
function isUser(userObj) {
// your answer here...
}
if (isUser(user)) {
// does not matter
}
});
不幸的是,我发现无法通过常见的 JavaScript 方式检查工厂对象的实例,例如:
user instanceof UserFac
或
typeof user === 'UserFac'
或
user.constructor === UserFac
或
user.prototype === UserFac
看起来工厂/服务的内部 AngularJS 代码隐藏了原型/构造函数属性。
网络搜索非常痛苦,因为(大部分)所有结果都处理服务和工厂之间的差异。
感谢您的帮助!
【问题讨论】:
标签: javascript angularjs prototype instanceof typeof