जावास्क्रिप्ट फ़ंक्शन आमंत्रण
जावास्क्रिप्ट के अंदर कोड function
तब निष्पादित होगा जब "कुछ" इसे आमंत्रित करेगा।
जावास्क्रिप्ट फ़ंक्शन को लागू करना
जब फ़ंक्शन परिभाषित किया जाता है तो फ़ंक्शन के अंदर कोड निष्पादित नहीं होता है ।
किसी फ़ंक्शन के अंदर कोड निष्पादित किया जाता है जब फ़ंक्शन लागू किया जाता है ।
"एक फ़ंक्शन को कॉल करें " के बजाय " एक फ़ंक्शन को कॉल करें " शब्द का उपयोग करना आम है ।
"फ़ंक्शन पर कॉल करें", "फ़ंक्शन प्रारंभ करें", या "फ़ंक्शन निष्पादित करें" कहना भी आम है।
इस ट्यूटोरियल में, हम इनवोक का उपयोग करेंगे , क्योंकि बिना कॉल किए जावास्क्रिप्ट फंक्शन को इनवाइट किया जा सकता है।
एक समारोह को एक समारोह के रूप में आमंत्रित करना
उदाहरण
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); //
Will return 20
उपरोक्त कार्य किसी वस्तु से संबंधित नहीं है। लेकिन जावास्क्रिप्ट में हमेशा एक डिफ़ॉल्ट वैश्विक वस्तु होती है।
एचटीएमएल में डिफ़ॉल्ट ग्लोबल ऑब्जेक्ट एचटीएमएल पेज ही है, इसलिए उपरोक्त फ़ंक्शन एचटीएमएल पेज पर "संबंधित" है।
ब्राउज़र में पेज ऑब्जेक्ट ब्राउज़र विंडो है। उपरोक्त फ़ंक्शन स्वचालित रूप से एक विंडो फ़ंक्शन बन जाता है।
myFunction() और window.myFunction() एक ही कार्य है:
उदाहरण
function myFunction(a, b) {
return a * b;
}
window.myFunction(10, 2); // Will also return 20
जावास्क्रिप्ट फ़ंक्शन को लागू करने का यह एक सामान्य तरीका है, लेकिन बहुत अच्छा अभ्यास नहीं है।
वैश्विक चर, विधियाँ, या कार्य आसानी से वैश्विक वस्तु में नाम संघर्ष और बग बना सकते हैं।
यह कीवर्ड _
जावास्क्रिप्ट में, जिसे this
, कहा जाता है, वह वस्तु है जो वर्तमान कोड का "मालिक" है।
का मान this
, जब किसी फ़ंक्शन में उपयोग किया जाता है, तो वह ऑब्जेक्ट होता है जो फ़ंक्शन का "मालिक" होता है।
ध्यान दें कि this
एक चर नहीं है। यह एक कीवर्ड है। आप का मान नहीं बदल सकते this
।
युक्ति: JS this Keywordthis
पर कीवर्ड के बारे में और पढ़ें ।
वैश्विक वस्तु
जब किसी फ़ंक्शन को स्वामी ऑब्जेक्ट के बिना कॉल किया जाता है, तो का मान this
वैश्विक ऑब्जेक्ट बन जाता है।
एक वेब ब्राउज़र में वैश्विक वस्तु ब्राउज़र विंडो है।
यह उदाहरण विंडो ऑब्जेक्ट को इसके मान के रूप में देता है this
:
उदाहरण
let x = myFunction();
// x will be the window object
function myFunction() {
return this;
}
किसी फ़ंक्शन को वैश्विक फ़ंक्शन के रूप में आमंत्रित करना, इसका मान वैश्विक ऑब्जेक्ट होने का कारण बनता है।
एक चर के रूप में विंडो ऑब्जेक्ट का उपयोग करना आपके प्रोग्राम को आसानी से क्रैश कर सकता है।
एक फ़ंक्शन को एक विधि के रूप में आमंत्रित करना
जावास्क्रिप्ट में आप फ़ंक्शन को ऑब्जेक्ट विधियों के रूप में परिभाषित कर सकते हैं।
निम्न उदाहरण एक ऑब्जेक्ट ( myObject ) बनाता है, जिसमें दो गुण ( firstName और lastName ), और एक विधि ( fullName ) होती है:
उदाहरण
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // Will return "John Doe"
FullName विधि एक फ़ंक्शन है । फ़ंक्शन ऑब्जेक्ट से संबंधित है। myObject फ़ंक्शन का स्वामी है।
, नाम this
की वस्तु वह वस्तु है जो जावास्क्रिप्ट कोड का "मालिक" है। इस मामले में का मान myObjectthis
है ।
झसे आज़माओ! का मान वापस करने के लिए पूर्णनाम विधि बदलें this
:
उदाहरण
const myObject = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this;
}
}
// This will return [object Object] (the owner object)
myObject.fullName();
किसी फ़ंक्शन को ऑब्जेक्ट विधि के रूप में आमंत्रित करना, का मान this
ऑब्जेक्ट होने का कारण बनता है।
फंक्शन कंस्ट्रक्टर के साथ फंक्शन को इनवाइट करना
यदि कोई फ़ंक्शन आमंत्रण new
कीवर्ड से पहले है, तो यह एक कन्स्ट्रक्टर आमंत्रण है।
ऐसा लगता है कि आप एक नया फ़ंक्शन बनाते हैं, लेकिन चूंकि जावास्क्रिप्ट फ़ंक्शन ऑब्जेक्ट हैं, आप वास्तव में एक नई ऑब्जेक्ट बनाते हैं:
उदाहरण
// This is a function constructor:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
const myObj = new myFunction("John", "Doe");
// This will return "John"
myObj.firstName;
एक कन्स्ट्रक्टर आमंत्रण एक नई वस्तु बनाता है। नई वस्तु को इसके निर्माता से गुण और विधियाँ विरासत में मिलती हैं।
कंस्ट्रक्टर में कीवर्ड का this
कोई मूल्य नहीं है।
जब फ़ंक्शन का आह्वान किया जाता है, तो बनाई गई नई वस्तु का मान this
होगा।