ব্যাখ্যা অন্যান্য উত্তর সরবরাহ কেউই আসল আর্গুমেন্ট যে হয় এখনও পাওয়া, কিন্তু মূল অবস্থানে না argumentsঅবজেক্ট।
argumentsবস্তুর প্রতিটি প্রকৃত ফাংশন প্রদান করা প্যারামিটার জন্য এক উপাদান ধারণ করে। আপনি কল যখন aসংখ্যা: আপনি তিনটি আর্গুমেন্ট সরবরাহ 1, 2, এবং, 3। সুতরাং, argumentsরয়েছে [1, 2, 3]।
function a(args){
console.log(arguments) // [1, 2, 3]
b(arguments);
}
আপনি যখন কল করেন bতবে আপনি ঠিক একটি তর্কটি পাস করেন : aএর argumentsঅবজেক্ট। তাই argumentsরয়েছে [[1, 2, 3]](যেমন এক উপাদান, যা aএর argumentsবস্তু, যার মূল আর্গুমেন্ট ধারণকারী বৈশিষ্ট্য আছে a)।
function b(args){
// arguments are lost?
console.log(arguments) // [[1, 2, 3]]
}
a(1,2,3);
@ নিক যেমন প্রদর্শিত হয়েছে, আপনি কলটিতে applyএকটি সেট argumentsঅবজেক্ট সরবরাহ করতে ব্যবহার করতে পারেন ।
নিম্নলিখিতগুলি একই ফলাফল অর্জন করে:
function a(args){
b(arguments[0], arguments[1], arguments[2]); // three arguments
}
তবে applyসাধারণ ক্ষেত্রে সঠিক সমাধান।
argumentsএটি আসলে একটি অ্যারে নয় (বরং একটি বস্তু যা অ্যারের মতো শব্দার্থক প্রয়োগ করে ) এবং তাই এটি প্রথম নজরে পুরোপুরি পরিষ্কার নয় যে এটি সত্যিকারের অ্যারে যেমন পারে তেমনভাবে ব্যবহার করা যায় কিনা।