如何为我的所有对象属性制作原型函数
How can I make a prototype function to all my object properties?
我有一个函数对象,我喜欢将另一个函数原型化为所有这些属性。
示例:
var test = function(num) {
return num * num / (num/4);
}
var obj = {
item1: item1, //this is a function already setted.
item2: item2, //this is a function already setted.
item3: item3 //this is a function already setted
}
我想要的是:obj.item1().test()
,而不在每个函数中设置this.test
。
您的test
函数
return num * num / (num/4);
就我所见,完全等同于num * 4
。
无论如何,您的评论中给出的示例itemX
返回了一个数字。能够对一个数字调用函数test
的唯一方法是将其添加到Number
原型中,有些人会说这是个坏主意:
Object.defineProperty(Number.prototype, 'test', { value: function () {
return this * this / (this/4);
});
如果您希望能够将test
从调用结果链接到obj.itemX
,则后者需要返回this
,而不是this.num
:
var itemX = function(val) {this.num = val; return this};
现在您只需要在obj
:上放置一次test
的修改版本
var obj = {
item1: item1, //this is a function already set.
item2: item2, //this is a function already set.
item3: item3, //this is a function already set.
test: function() { return test(this.num); }
};
> obj.item1(22).test()
< 88
如何对所有对象属性生成原型函数?
如果您指的是test
,那么这不是一个原型函数。这只是对象上的一个普通的老方法。要添加它,只需将它添加到对象上,如上所述。
相关文章:
- 如何从对象的原型方法访问JavaScript对象属性
- 附加到原型属性的Do函数没有闭包
- 日期原型属性
- 价值、原型和属性的差异
- 使用闭包创建原型中引用的私有属性
- 为什么属性存在于对象实例上,即使其原型发生了更改
- 为什么在原型中定义属性被视为反模式
- JS构造函数的原型属性与其原型之间的区别
- 为什么函数对象的实例没有继承函数原型属性
- 组件是HTML5的属性还是原型.js的东西
- 为什么浏览器显示原型属性不同
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- Javascript设置&阴影属性(原型链)
- 高图表热图 未捕获类型错误:无法读取未定义的属性“原型”
- 无法使用服务AngularJS - “无法读取未定义的属性'原型'”
- 未捕获的类型错误:无法读取未定义的属性“原型”
- 如何在DOM object的构造函数中添加属性.原型在Internet Explorer<=IE8
- 扩展类不能读取未定义的属性原型
- 未捕获的类型错误:无法读取未定义的 sails.io.js 的属性“原型”
- 升级到量角器4后无法读取未定义的属性“原型”