2009-03-12 15 views
9

कुछ ए 3 फ़ंक्शन सम्मेलन का उपयोग करके पैरामीटर की मनमानी संख्या की अनुमति देकर ओवरलोडिंग को संभालते हैं:एक सरणी के साथ पैरामीटर (... आराम) भरना?

public function doSomething(... rest):void; 

मैं ऐसी स्थिति में हूं जहां मुझे इस प्रकार के सरणी (मनमानी लंबाई के) के सभी मानों को पारित करने की आवश्यकता है कार्य ... मुझे यकीन नहीं है कि यह कैसे करें। सुझाव?

यहां एक हैक समाधान है, लेकिन यह एक्स्टेंसिबल नहीं है:

switch (args.length) { 
case 0: doSomething(); break; 
case 1: doSomething(args[0]); break; 
case 2: doSomething(args[0], args[1]); break;} 

उत्तर

14

चेक बाहर Function#Apply()। यह आपको पैरामीटर को सरणी के रूप में पास करने देता है।

doSomething.apply(contextObj, args); 
1

Here कार्यों के बीच शेष पैरामीटर को पारित करने के लिए एक बहुत अच्छी युक्ति है।

+0

मेरी पोस्ट और दयालु शब्दों को जोड़ने के लिए धन्यवाद। :) – johncblandii

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