जब आप जावास्क्रिप्ट में फंक्शन कॉल करते हैं तो आप कितने भी आर्गुमेंट्स पास कर सकते हैं। फंक्शन पैरामीटर की कोई सीमा नहीं है। इसका यह भी अर्थ है कि फंक्शन्स को पारंपरिक तरीकों से जेएस में ओवरलोड नहीं किया जा सकता।
arguments ऑब्जेक्ट सभी नॉन-एरो फंक्शन्स में उपलब्ध एक लोकल वेरिएबल है। आप उस फंक्शन के arguments ऑब्जेक्ट का उपयोग करके फंक्शन के आर्गुमेंट्स को उस फंक्शन के अंदर संदर्भित कर सकते हैं। इसमें फंक्शन को कॉल किए गए प्रत्येक आर्गुमेंट के लिए एंट्रीज होती हैं, जिसमें पहली एंट्री का इंडेक्स 0 पर होता है।
उदाहरण के लिए, यदि किसी फंक्शन को 3 आर्गुमेंट्स पास किए जाते हैं, तो आप उन्हें इस प्रकार एक्सेस कर सकते हैं -
arguments[0] // पहला आर्गुमेंट arguments[1] // दूसरा आर्गुमेंट arguments[2] // तीसरा आर्गुमेंट
नोट - arguments फंक्शन्स के अंदर पहुंच योग्य एक ऐरे-जैसा ऑब्जेक्ट है जिसमें उस फंक्शन को पास किए गए आर्गुमेंट्स के मान होते हैं। "ऐरे-जैसा" का अर्थ है कि arguments में length प्रॉपर्टी और शून्य से इंडेक्स्ड प्रॉपर्टीज होती हैं, लेकिन इसमें ऐरे के बिल्ट-इन मेथड्स जैसे forEach() और map() नहीं होते।
उदाहरण के लिए, मनमानी संख्या में आर्ग्स स्वीकार करने के लिए, आप निम्नानुसार फंक्शन बना सकते हैं -
उदाहरण
function printAllArguments(a, b) { console.log("First arg: " + a) console.log("Second arg: " + b) console.log("All args: " + arguments) } printAllArguments(1) printAllArguments(1, "hello") printAllArguments(1, "hello", 1, "hello")
आउटपुट
First arg: 1 Second arg: undefined All args: {"0":1} First arg: 1 Second arg: hello All args: {"0":1,"1":"hello"} First arg: 1 Second arg: hello All args: {"0":1,"1":"hello","2":1,"3":"hello"}