পরম্পরাগতভাবে আমাদের অবজেক্টের নিজস্ব অনন্য মেথড এবং প্রোপার্টি থাকে। apply() ফাংশন ব্যবহার করে আমরা একটি মেথড তৈরি করতে পারি যা সব দिये गये অবজেক্টকে একসাথে অ্যাক্সেস করতে পারে।
আসলে, এই মেথড call() ফাংশনের মতোই কাজ করে, কিন্তু যখন অ্যারে-লাইক ভ্যারিয়েবল পাস করার প্রয়োজন পড়ে, তখন apply() ফাংশন কাজে লাগে।
নিচের উদাহরণে, একাধিক এলিমেন্ট আলাদা আলাদা কল করা হয়েছে, তাই apply() ফাংশন প্রয়োজন নেই, বরং call() ফাংশন ব্যবহার করা হয়েছে।
উদাহরণ
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } document.write(mul.call(obj,6,3,4)); </script> </body> </html>আউটপুট
720
নিচের উদাহরণে আলাদা এলিমেন্টের বদলে যখন একটি অ্যারে পাস করা হয়েছে, তখন call() ফাংশন NaN রিটার্ন করেছে, কিন্তু apply() ফাংশন মান রিটার্ন করেছে। কারণ call() ফাংশন অ্যারে অ্যাক্সেস করতে পারে না।
উদাহরণ
<html> <body> <script> var obj = {num : 10}; var mul = function(i, j, k){ return this.num * i*j*k; } var array = [6,3,4] document.write(mul.call(obj,array)); document.write("<br>"); document.write(mul.apply(obj,array)); </script> </body> </html>আউটপুট
NaN 720