ईसीएमएससी arguments ऑब्जेक्ट
- पिछला पृष्ठ फ़ंक्शन समीक्षा
- अगला पृष्ठ फ़ंक्शन ऑब्जैक्ट
arguments ऑब्जैक्ट
फ़ंक्शन कोड में, विकासकर्ता के लिए विशेष ऑब्जैक्ट arguments का उपयोग करते हैंपैरामीटर नाम का निर्दिष्ट करने की आवश्यकता नहीं हैसकते हैं.
उदाहरण में, फ़ंक्शन sayHi() में, पहला पैरामीटर message है। arguments[0] के द्वारा भी इस मान को पहुंचा जा सकता है, यानी पहले पैरामीटर का मान (पहला पैरामीटर स्थान 0 पर है, दूसरा पैरामीटर स्थान 1 पर है, इस तरह ही)...
इसलिए, पैरामीटरों का नाम निर्दिष्ट नहीं करके, फ़ंक्शन को फिर से लिखा जा सकता है:
function sayHi() { if (arguments[0] == "bye") {}} return; } alert(arguments[0]); }
पारामीटर संख्या जाँच
arguments ऑब्जैक्ट का उपयोग करके फ़ंक्शन के पारामीटरों की संख्या की जाँच कर सकते हैं, arguments.length प्रयोग करके।
नीचे दिए गए कोड से फ़ंक्शन को बुलाने पर प्रत्येक बार फ़ंक्शन को पारामीटरों की संख्या आउटपुट होगी:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
इस कोड से "2"、"0" और "1" क्रमश: प्रदर्शित होंगे。
टिप्पणी:अन्य कार्यक्रम डिजाइनिंग भाषाओं के विपरीत, ECMAScript फ़ंक्शन को पारामीटरों की संख्या की पुष्टि नहीं करता है जो फ़ंक्शन के परिभाषित पारामीटरों के समान है। डेवलपर द्वारा परिभाषित सभी फ़ंक्शन को किसी भी संख्या के पारामीटरों को स्वीकार कर सकते हैं (नेटस्केप के दस्तावेज़ के अनुसार, अधिकतम 255 पारामीटर), और किसी भी ग़लती को नहीं उत्पन्न करते। अनुपस्थित पारामीटर undefined के रूप में फ़ंक्शन को भेजा जाता है, अतिरिक्त फ़ंक्शन अनदेखा कर दिए जाते हैं।
फ़ंक्शन प्रतिलिपि
arguments ऑब्जैक्ट का उपयोग करके फ़ंक्शन को पारामीटरों की संख्या जाँच करने से फ़ंक्शन को प्रतिलिपि कर सकते हैं:
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); //आउटपुट "15" doAdd(40, 20); //आउटपुट "60"
एक पारामीटर एक्सिस्ट करने पर, doAdd() फ़ंक्शन पारामीटर को 5 जोड़ता है। दो पारामीटर होने पर, दोनों पारामीटरों को जोड़ा जाता है और उनका योग लौटाया जाता है। इसलिए, doAdd(10) का आउटपुट "15" है, और doAdd(40, 20) का आउटपुट "60" है。
हालांकि वारिसन की तुलना में बेहतर नहीं है, लेकिन इससे ईसीमैस्क्रिप्ट के इस प्रतिबंध को बचाने के लिए पर्याप्त है。
- पिछला पृष्ठ फ़ंक्शन समीक्षा
- अगला पृष्ठ फ़ंक्शन ऑब्जैक्ट