जावास्क्रिप्ट फ़ंक्शन परिभाषाएँ
जावास्क्रिप्ट फ़ंक्शन को कीवर्ड के साथ
परिभाषित किया गया है।function
आप फ़ंक्शन घोषणा या फ़ंक्शन अभिव्यक्ति का उपयोग कर सकते हैं ।
समारोह घोषणाएं
इससे पहले इस ट्यूटोरियल में, आपने सीखा कि फंक्शन्स को निम्नलिखित सिंटैक्स के साथ घोषित किया जाता है:
function functionName(parameters) {
// code to be executed
}
घोषित कार्यों को तुरंत निष्पादित नहीं किया जाता है। वे "बाद में उपयोग के लिए सहेजे गए" हैं, और बाद में निष्पादित किए जाएंगे, जब उन्हें बुलाया जाएगा (आह्वान किया जाएगा)।
उदाहरण
function myFunction(a, b) {
return a * b;
}
अर्धविराम का उपयोग निष्पादन योग्य जावास्क्रिप्ट कथनों को अलग करने के लिए किया जाता है।
चूंकि एक फ़ंक्शन घोषणा निष्पादन योग्य कथन नहीं है, इसलिए इसे अर्धविराम से समाप्त करना आम बात नहीं है।
फंक्शन एक्सप्रेशन
एक जावास्क्रिप्ट फ़ंक्शन को एक अभिव्यक्ति का उपयोग करके भी परिभाषित किया जा सकता है ।
एक फ़ंक्शन अभिव्यक्ति को एक चर में संग्रहीत किया जा सकता है:
उदाहरण
const x = function (a, b) {return a * b};
एक फ़ंक्शन अभिव्यक्ति को एक चर में संग्रहीत करने के बाद, चर का उपयोग फ़ंक्शन के रूप में किया जा सकता है:
उदाहरण
const x = function (a, b) {return a * b};
let z = x(4, 3);
उपरोक्त फ़ंक्शन वास्तव में एक अनाम फ़ंक्शन (बिना नाम वाला फ़ंक्शन) है।
चर में संग्रहीत कार्यों को फ़ंक्शन नामों की आवश्यकता नहीं होती है। वेरिएबल नाम का उपयोग करके उन्हें हमेशा बुलाया (बुलाया) जाता है।
उपरोक्त फ़ंक्शन अर्धविराम के साथ समाप्त होता है क्योंकि यह निष्पादन योग्य कथन का एक हिस्सा है।
फंक्शन () कंस्ट्रक्टर
जैसा कि आपने पिछले उदाहरणों में देखा है, जावास्क्रिप्ट फ़ंक्शन function
कीवर्ड के साथ परिभाषित होते हैं।
फ़ंक्शंस को बिल्ट-इन जावास्क्रिप्ट फ़ंक्शन कंस्ट्रक्टर के साथ भी परिभाषित किया जा सकता है जिसे
Function()
.
उदाहरण
const myFunction = new Function("a", "b", "return a * b");
let x = myFunction(4, 3);
आपको वास्तव में फ़ंक्शन कंस्ट्रक्टर का उपयोग करने की आवश्यकता नहीं है। उपरोक्त उदाहरण लेखन के समान है:
उदाहरण
const myFunction = function (a, b) {return a * b};
let x = myFunction(4, 3);
अधिकांश समय, आप new
जावास्क्रिप्ट में कीवर्ड का उपयोग करने से बच सकते हैं।
समारोह उत्थापन
इससे पहले इस ट्यूटोरियल में, आपने "होस्टिंग" ( जावास्क्रिप्ट होस्टिंग ) के बारे में सीखा।
होस्टिंग घोषणाओं को वर्तमान दायरे के शीर्ष पर ले जाने का जावास्क्रिप्ट का डिफ़ॉल्ट व्यवहार है ।
उत्थापन परिवर्तनशील घोषणाओं और कार्य घोषणाओं पर लागू होता है।
इस वजह से, घोषित होने से पहले जावास्क्रिप्ट फ़ंक्शन को कॉल किया जा सकता है:
myFunction(5);
function myFunction(y) {
return y * y;
}
एक अभिव्यक्ति का उपयोग करके परिभाषित कार्य फहराए नहीं जाते हैं।
स्व-आमंत्रण कार्य
फंक्शन एक्सप्रेशन को "सेल्फ-इनवोकिंग" बनाया जा सकता है।
एक स्व-आह्वान अभिव्यक्ति स्वचालित रूप से, बिना बुलाए (शुरू) की जाती है।
यदि अभिव्यक्ति के बाद () है तो फंक्शन एक्सप्रेशन स्वचालित रूप से निष्पादित होंगे।
आप फ़ंक्शन घोषणा को स्वयं-आह्वान नहीं कर सकते हैं।
यह इंगित करने के लिए कि यह एक फ़ंक्शन अभिव्यक्ति है, आपको फ़ंक्शन के चारों ओर कोष्ठक जोड़ना होगा:
उदाहरण
(function () {
let x = "Hello!!"; // I will invoke myself
})();
उपरोक्त फ़ंक्शन वास्तव में एक अनाम स्व-चालान फ़ंक्शन (नाम के बिना फ़ंक्शन) है।
कार्यों का उपयोग मूल्यों के रूप में किया जा सकता है
जावास्क्रिप्ट फ़ंक्शंस का उपयोग मानों के रूप में किया जा सकता है:
उदाहरण
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3);
जावास्क्रिप्ट फ़ंक्शंस का उपयोग अभिव्यक्तियों में किया जा सकता है:
उदाहरण
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3) * 2;
कार्य वस्तुएं हैं
जावास्क्रिप्ट में typeof
ऑपरेटर कार्यों के लिए "फ़ंक्शन" देता है।
लेकिन, जावास्क्रिप्ट कार्यों को वस्तुओं के रूप में सर्वोत्तम रूप से वर्णित किया जा सकता है।
जावास्क्रिप्ट फ़ंक्शंस में गुण और विधियाँ दोनों हैं ।
arguments.length
जब फ़ंक्शन लागू किया गया था, तो संपत्ति प्राप्त तर्कों की संख्या लौटाती है :
उदाहरण
function myFunction(a, b) {
return arguments.length;
}
toString()
विधि फ़ंक्शन को एक स्ट्रिंग के रूप में लौटाती है :
उदाहरण
function myFunction(a, b) {
return a * b;
}
let text = myFunction.toString();
किसी ऑब्जेक्ट की संपत्ति के रूप में परिभाषित एक फ़ंक्शन को ऑब्जेक्ट के लिए एक विधि कहा जाता है।
नई वस्तुओं को बनाने के लिए डिज़ाइन किए गए फ़ंक्शन को ऑब्जेक्ट कंस्ट्रक्टर कहा जाता है।
तीर कार्य
एरो फंक्शन फंक्शन एक्सप्रेशन लिखने के लिए एक छोटे सिंटैक्स की अनुमति देता है।
आपको function
कीवर्ड, return
कीवर्ड और
कर्ली ब्रैकेट की आवश्यकता नहीं है ।
उदाहरण
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
एरो फ़ंक्शंस का अपना नहीं है this
। वे वस्तु विधियों को परिभाषित करने के लिए उपयुक्त नहीं हैं ।
तीर कार्यों को नहीं फहराया जाता है। उपयोग करने से पहले उन्हें परिभाषित किया जाना चाहिए ।
उपयोग करना उपयोग const
करने से अधिक सुरक्षित है var
, क्योंकि फ़ंक्शन अभिव्यक्ति हमेशा स्थिर मान होती है।
return
यदि फ़ंक्शन एकल कथन है, तो आप केवल कीवर्ड और घुंघराले कोष्ठक को छोड़ सकते हैं । इस वजह से, इन्हें हमेशा रखना एक अच्छी आदत हो सकती है:
उदाहरण
const x = (x, y) => { return x * y };
IE11 या इससे पहले के एरो फ़ंक्शंस समर्थित नहीं हैं।