ای سی ایم اسکریپت آرگومنٹس اوبجیکٹ

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" کا ترتیب سے نمائش کیا جائے گا。

تذکرہ:دوسرے پروگرامنگ زبانوں سے متضاد، اکمااسکریپٹ پارامٹر کی تعداد کو جانچ نہیں کرتا جس کی تعداد فونکشن کی تعین میں دفعت سے دینا جاتا ہے۔ پروگرامر کے ذریعہ تعین شدہ فونکشن کا کسی بھی تعداد کا پارامٹر قبول کرسکتا ہے (نیتسکا کے دستاویزات کے مطابق، زیادہ سے زیادہ 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" ہوتا ہے。

اگرچ کہ اس کی بہتری نہیں ہوتی، لیکن یہ ایسا ہی کافی ہے کہ یہ ایسا ریمننٹ اکمااسکریپٹ کی اس محدودیت سے بچ سکتی ہے。