রেস্ট প্যারামিটার
রেস্ট প্যারামিটার দিয়ে একাধিক আর্গুমেন্টকে একটি অ্যারে হিসেবে রিপ্রেজেন্ট করা যায়। ES6-এ এটি যোগ করা হয়েছে। তিনটি ডট (...) দিয়ে নির্দেশিত হয়।
আর্গুমেন্টস অবজেক্ট
arguments অবজেক্ট জাভাস্ক্রিপ্টে একটি অবজেক্ট যা এক্সিকিউট হচ্ছে ফাংশনের আর্গুমেন্টগুলোকে রিপ্রেজেন্ট করে।
পার্থক্য
- আর্গুমেন্টস অবজেক্ট ফাংশনে পাস করা সব আর্গুমেন্ট ইনক্লুড করে, অন্যদিকে রেস্ট প্যারামিটার শুধু সেসব আর্গুমেন্ট যা অন্য কোনো নাম দিয়া নেই।
- রেস্ট প্যারামিটার হলো Array ইনস্ট্যান্স, কিন্তু arguments অবজেক্ট অ্যারে নয়। অ্যারে ইনস্ট্যান্সগুলোর মেথড রয়েছে:
map,sort,pop, ইত্যাদি।
উদাহরণ
function demo(first, second, ...rest) {
console.log("First:", first); // 1
console.log("Second:", second); // 2
console.log("Rest:", rest); // [3, 4, 5] - Array
console.log("Arguments:", arguments); // {0:1, 1:2, 2:3, 3:4, 4:5, length:5} - Object
// Rest-এ Array মেথড ব্যবহার করা যায়
console.log(rest.map(x => x * 2)); // [6, 8, 10]
// Arguments-এ Array মেথড নেই (array-like)
// Array.from(arguments).map(x => x * 2) // কাজ করবে
}
demo(1, 2, 3, 4, 5);
arguments অবজেক্টের সীমাবদ্ধতা
- অ্যারে নয় (array-like object)
- Arrow ফাংশনে
argumentsনেই - ক্যালি সাইটে
arguments.calleeডিপ্রিকেটেড