web-dev-qa-db-ja.com

JavaScriptコールバック関数に複数の引数を渡すにはどうすればよいですか?

Javascriptコード:

function doSomething(v1,v2){ //blah; }

function SomeClass(callbackFunction,callbackFuncParameters(*Array*))={
   this.callback = callbackFunction;
   this.method = function(){
       this.callback(parameters[0],parameters[1])  // *.*
   }
}

var obj = new SomeClass( doSomething, Array('v1text','v2text') );

問題は、関数doSomethingをに変更した場合です

function doSomething(v1,v2,v3){ //blah; }

SomeClassの対応する行(//*.*とマークされている)をに変更する必要があります

this.callback(parameters[0],parameters[1],parameters[2]);

'doSomething'関数のパラメーターの数がどのように変更されても、(*.*)行が変更されないようにするにはどうすればよいですか?

どうもありがとう!

17
Shawn

メソッドの適用 を使用することをお勧めします

this.callback.apply(this, parameters);

適用する最初のパラメーターは、コールバック内の「this」の値を示し、任意の値に設定できます。

23
krosenvold