0

我在我的应用程序下面的代码:的Javascript原型不添加方法

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。当我打了镀铬的调试器和i型控制台以下:

res.hello() 

我得到:

TypeError: Object function RailsResource(value) { angular.extend(this, value || {}); } has no method 'hello' 

我不知道为什么会这样。我是一种新的JavaScript,所以我可能不会从根本上理解关于Prototype的东西。或者也许它可能是角度或轨道的问题。

感谢

回答

0

的原型属性只适用于功能..第一个基本的问题要问自己是,确实

railsResourceFactory({url: '/users', name: 'user'}); 

回报功能/构造?不,不是的。它返回一个资源对象。如果您来自传统的OOP语言,那么只要说原型属性仅适用于类而不适用于对象。如果您仍然希望能够访问当前正在处理的对象的原型,则可以访问它通过调用

object.constructor.prototype 

所以,你可以实现你正试图达到什么致电

res.constructor.prototype.hello= function() { 
     return "hello"; 

    };