2011-12-22 10 views
5

कैसे इसAS3 चर लंबाई तर्क

function foo(x:*, ...args):* { 
} 

function bar(x:*, ...args):* { 
    foo(x, args); // how to expand args ? the args is an array now 
} 

कैसे आर्ग विस्तार करने के लिए ऐसा करने के लिए वर लंबाई आर्ग के साथ एक और समारोह कॉल करने के लिए विस्तार? जब मैं bar(1,2,3) कहते हैं, मैं इसे foo(1,2,3) फोन इच्छा है, लेकिन यह foo(1,[2,3])

उत्तर

4
function bar(x:*, ...args):* { 
    args.unshift(x); //add x to the front of the args array 
    foo.apply(<scope>, args); 
} 

तो foo और bar एक ही कक्षा <scope> घोषित किये गए हैं this होना चाहिए, अन्यथा यह वर्ग foo घोषित करने के उदाहरण होना चाहिए और यह होना चाहिए, अगर foo एक वैश्विक समारोह है null

foo.apply(this, args); 
//-- or -- 
foo.apply(myFooInstance, args); 
//-- or -- 
foo.apply(null, args); 
-1

मेरा मानना ​​है कि फोन इस आंशिक रूप से आपके प्रश्न के उत्तर: http://www.flex888.com/574/can-i-have-a-variable-number-of-arguments-in-as3.html

हालांकि, मैं यह है कि तुम क्या अनुरोध कर रहे हैं कि वास्तव में क्या करने के लिए संभव है नहीं लगता है किसी भी तरह के उचित तरीके से।

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