ruby on rails 3 - Javascript原型没有添加方法
ruby on rails 3 - 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";
};
相关文章:
- 在对象中添加方法时出现问题
- 什么意思是“;向原型添加方法”;
- jQuery验证器添加方法未定义
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 向React中的高阶组件添加方法
- 向JavaScript对象添加方法
- 如何向[]添加方法
- 如何在流星js中为对象添加方法
- jQuery.validation 在生日年龄验证中添加方法错误
- 使用 IE8 添加方法的 JavaScript 错误
- 向方法添加方法
- 如何在 Javascript ES6 中向类添加方法
- Javascript:向对象类添加方法的优缺点是什么
- 如何更改“动物”的原型并添加方法“sayName”来打印语句
- 如何在 Illustrator CS5.1+ 中创建画板对象的添加方法所需的矩形对象
- 如何在 nodejs 中全局添加方法到 JSON、Date 或其他“本机”对象
- 什么类/类型是未定义的,是否可以向其扩展/添加方法
- 为什么在 javascript 中向数组原型添加方法会破坏 for 循环上的迭代
- 向对象添加方法
- 动态添加方法到对象