下面是我的App的简化版本,以下代码按预期工作。我可以在控制台中看到 4 个日志,其中包含我传递给的参数SayHello
。
var App = {};
(function(that){
that.SayHello = function(){
console.log( arguments );
return {
doSomething: function(){
console.log('done');
}
};
};
var obj = {
t: new that.SayHello( 'a', 1 ),
r: new that.SayHello( 'b', 2 ),
b: new that.SayHello( 'c', 3 ),
l: new that.SayHello( 'd', 4 )
};
}(App));
问题:我正在尝试创建一个“快捷方式”,new that.SayHello
如下所示:
var Greet = function(){
return new that.SayHello;
},
obj = {
t: Greet( 'a', 1 ),
r: Greet( 'b', 2 ),
b: Greet( 'c', 3 ),
l: Greet( 'd', 4 )
};
控制台记录 4 个空数组。这意味着arguments
未能通过。
我也试过return new that.SayHello.apply(this, arguments);
和return new that.SayHello.call(this, arguments);
。
我怎样才能将 ALL 传递给Greet
?arguments
that.SayHello
知道我必须初始化that.SayHello
usingnew that.SayHello
否则我的代码会中断。
我正在寻找任何数量的通用解决方案arguments
,我不想arguments
一个一个地通过。
此代码也可在jsfiddle上找到。