फंक्शन चेनिंग एक प्रोग्रामिंग तकनीक है जो डेवलपर्स को एक विशिष्ट क्रम में निष्पादित संचालन का अनुक्रम बनाने की अनुमति देती है। जावास्क्रिप्ट में, यह स्वयं फ़ंक्शन को वापस करने और इस कीवर्ड का उपयोग करने के संयोजन के माध्यम से प्राप्त किया जाता है।
चेनिंग के सिद्धांतों को समझने के लिए, आइए एक कामकाजी उदाहरण की जांच करें:
var one = function(num) {
this.oldnum = num;
this.add = function() {
this.oldnum ;
return this;
}
if (this instanceof one) {
return this.one;
} else {
return new one(num);
}
}
var test = one(1).add().add();
इस उदाहरण में, एक फ़ंक्शन एक संख्या के साथ बनाया गया है। यह एक ऐड फ़ंक्शन को परिभाषित करता है जो ओल्डनम प्रॉपर्टी को बढ़ाता है और इसे लौटाता है। यदि कथन जांचता है कि फ़ंक्शन को कंस्ट्रक्टर के रूप में बुलाया गया है (नए का उपयोग करके) और यदि नहीं तो एक का नया उदाहरण देता है।
अभिव्यक्ति one(1).add().add() एक बनाकर शुरू होती है 1 के प्रारंभिक मान के साथ नया ऑब्जेक्ट। फिर, इस ऑब्जेक्ट पर ऐड फ़ंक्शन को दो बार कॉल किया जाता है, जो हर बार ओल्डनम प्रॉपर्टी को बढ़ाता है। अंत में, वेरिएबल परीक्षण परिणाम रखता है, जो कि ओल्डनम के साथ 3 पर सेट एक ऑब्जेक्ट है। () { यह जोड़ें = फ़ंक्शन() { चेतावनी('जोड़ें'); इसे वापस करो; } यदि (जीएमएपी का यह उदाहरण) { इसे वापस करें.gmap; } अन्य { नया gmap लौटें(); } } var test = gmap.add();
यहां, gmap फ़ंक्शन इसे अपने तरीकों के भीतर वापस नहीं करता है, इसलिए चेनिंग टूट गई है। अभिव्यक्ति gmap.add() स्वयं gmap कंस्ट्रक्टर फ़ंक्शन पर ऐड विधि को कॉल करने का प्रयास करती है, जो कि अपेक्षा के अनुरूप काम नहीं करती है।
var gmap = function() {
this.add = function() {
alert('add');
return this;
}
if (this instanceof gmap) {
return this.gmap;
} else {
return new gmap();
}
}
var test = gmap.add();
जावास्क्रिप्ट में संक्षिप्त और अभिव्यंजक कोड लिखने के लिए चेनिंग एक शक्तिशाली तकनीक हो सकती है। ऊपर उल्लिखित सिद्धांतों को समझकर, डेवलपर्स अपने एप्लिकेशन की कार्यक्षमता को बढ़ाने के लिए चेनिंग का प्रभावी ढंग से लाभ उठा सकते हैं। अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3