ruby on rails 3 - Javascript原型没有添加方法

ruby on rails 3 - Javascript Prototype not adding method

本文关键字:添加 方法 原型 Javascript on rails ruby      更新时间:2023-09-26

我的应用程序中有以下代码:

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";
    };