पारंपरिक रूप से हमारे पास ऑब्जेक्ट्स होते हैं जिनके अपने अद्वितीय मेथड्स और प्रॉपर्टीज होते हैं। 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