2009-01-30 19 views
17

Javascript कोड: अगर मैंमैं जावास्क्रिप्ट कॉलबैक फ़ंक्शन में एकाधिक तर्क कैसे पास करूं?

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

को समारोह DoSomething बदल रहा करने के लिए SomeClass में इसी लाइन (//*.* के रूप में चिह्नित) बदलना होगा

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')); 
समस्या

है

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

(*.*) लाइन को बदलने के लिए क्या किया जा सकता है इससे कोई फर्क नहीं पड़ता कि 'doSo' की संख्या mething 'फ़ंक्शन के पैरामीटर बदल दिए गए हैं?

बहुत बहुत धन्यवाद!

उत्तर

22

आप शायद apply method

this.callback.apply(this, parameters); 

पहले पैरामीटर का उपयोग करने के लिए आवेदन करना चाहते हैं "इस" भीतर कॉलबैक के मूल्य इंगित करता है और किसी भी मान पर सेट किया जा सकता है।

+0

काम करता है! धन्यवाद। – Shawn

+1

मैं इस कार्यक्षमता का उपयोग करने के तरीके पर थोड़ा उलझन में हूं। मैं जो करना चाहता हूं वह इस तरह के कॉलबैक पर एक फ़ंक्शन पास करता है - myfunction (function (myele) {// myele का उपयोग करें})। इसलिए मैं यहां एक एयन कॉलबैक फ़ंक्शन पास कर रहा हूं जिसमें माइले पैरामीटर इसे पास किया जा रहा है। मैं उपरोक्त कोड के साथ यह कैसे करूं? – Metropolis

संबंधित मुद्दे