我有以下代码,我希望函数(first )上的属性( server )直接在对象文字(actions)中定义。
var actions = {
first: function(){
console.log("First")
},
second: function(){
console.log("Second")
},
};
actions.first.server = "server_1";
我有以下代码,我希望函数(first )上的属性( server )直接在对象文字(actions)中定义。
var actions = {
first: function(){
console.log("First")
},
second: function(){
console.log("Second")
},
};
actions.first.server = "server_1";
在有疑问时使用函数,或者在任何时候想要使用需要变量的复杂构造时使用:
var actions = {
first: (function(){
function first(){
console.log("First")
};
first.server="server_1";
return first;
}()),
second: function(){
console.log("Second")
}
};
将您的函数作为上下文传递给类/装饰器 - 或 - 故意添加属性:
function FunctionDecorator(server) { this.server = server; return this; }
var object = {
first: FunctionDecorator.call(function first() {}, 'server_1')
};
- 或者 -
var object = {
first: function first() { first.server = first.server || getServer(); }
};
但是,我想说你可以在一些 OOP 上做更多的工作,因为这有点笨拙,除非你想要可调用的对象(使用装饰器方法)。例如,AngularJS 有一个$http
可以像$http({...})
或一样使用的模块$http.get(...)
——这是因为它是一个装饰函数。
干杯