2009-01-30 18 views
17

JavaScript kodu: ı için SomeClass içinde (//*.* olarak işaretlenmiş), karşılık gelen bir çizgi değiştirmek zorundaBirden çok bağımsız değişkeni bir javascript geri arama işlevine nasıl geçiririm?

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

işlev doSomething değişirse

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')); 

sorun

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

'DoSo' sayısı ne olursa olsun değiştirilecek (*.*) hattından kaçınmak için ne yapılabilir ölçüm fonksiyonunun parametreleri değişti mi?

Çok teşekkürler!

cevap

22

Muhtemelen uygulamak için apply method

this.callback.apply(this, parameters); 

ilk parametresini kullanmak istiyorsanız "Bu" içinde callback'inde değerini belirtir ve herhangi bir değere ayarlanabilir.

+0

Teşekkür ederim. – Shawn

+1

Bu işlevselliği nasıl kullanacağım konusunda biraz kafam karıştı. Ne yapmak istediğim, bu gibi bir geri bildirime bir işlev iletmektir - işlev (işlev (myele) {// kullanımı myele}). Bu yüzden, bir anon geriçağırım işlevini buraya geçirilen myel parametresiyle iletiyorum. Bunu yukarıdaki kodunuzla nasıl yaparım? – Metropolis

İlgili konular