Below, is a simplified version of my App, the following code works as intended. I can see 4 logs in my console with the arguments I passed to 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));
issue: I am trying to create a "shortcut" to new that.SayHello
as follow:
var Greet = function(){
return new that.SayHello;
},
obj = {
t: Greet( 'a', 1 ),
r: Greet( 'b', 2 ),
b: Greet( 'c', 3 ),
l: Greet( 'd', 4 )
};
The console logs 4 empty arrays. Wich means the arguments
failed to pass.
I also tried return new that.SayHello.apply(this, arguments);
and return new that.SayHello.call(this, arguments);
.
How can I pass ALL Greet
's arguments
to that.SayHello
?
Knowing that I have to initialize that.SayHello
using new that.SayHello
or else my code breaks.
I am looking for a general solution for any number of arguments
, I don't want to pass the arguments
one by one.
This code is also available on jsfiddle.