[英]Javascript Prototype not adding method
我的应用程序中包含以下代码:
app.factory('User', ['railsResourceFactory', '$http', function (railsResourceFactory, $http) {
var res = railsResourceFactory({url: '/users', name: 'user'});
res.prototype.hello = function () {
return "hello";
};
debugger;
return res;
}]);
我正在使用angularjs-rails-resource gem 。 当我在chrome中点击调试器,然后在控制台中键入以下内容:
res.hello()
我得到:
TypeError: Object function RailsResource(value) { angular.extend(this, value || {}); } has no method 'hello'
我不确定为什么会这样。 我有点新的javascript,所以我可能从根本上不了解Prototype。 也许这可能是角度或导轨问题。
谢谢
prototype属性仅对函数可用。问自己的第一个基本问题是,
railsResourceFactory({url: '/users', name: 'user'});
返回一个函数/构造函数? 不,不是的。 它返回一个资源对象。 如果您使用的是经典的OOP语言,那么只需说一下prototype属性仅对类可用,而在对象中不可用。如果您仍然希望能够访问当前正在处理的对象的原型,则可以访问通过调用它
object.constructor.prototype
因此,您可以通过致电实现您要实现的目标
res.constructor.prototype.hello= function () {
return "hello";
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.