以下は、私の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
new that.SayHello
任意の数の一般的な解決策を探しています。1つずつarguments
渡したくありません。arguments
このコードはjsfiddleでも入手できます。