मैं अपने सिर में सीधे jQuery-शैली फ़ंक्शन चेन करने के सिद्धांतों को प्राप्त करने का प्रयास कर रहा हूं। इसके द्वारा मेरा मतलब है:जावास्क्रिप्ट में मूल ऑब्जेक्ट/फ़ंक्शन चेनिंग कार्य कैसे करता है?
var e = f1('test').f2().f3();
मुझे काम करने के लिए एक उदाहरण मिला है, जबकि दूसरा नहीं है। मैं नीचे उनको पोस्ट करूंगा। मैं हमेशा कुछ सिद्धांतों को सीखना चाहता हूं कि कुछ कैसे काम करता है ताकि मैं इसके शीर्ष पर निर्माण कर सकूं। अब तक, मेरे पास केवल काम करने वाली चीजों की एक सरसरी और ढीली समझ है और मैं उन बग्स में दौड़ रहा हूं जिन्हें मैं बुद्धिमानी से समस्या निवारण नहीं कर सकता।
मुझे क्या पता:
- कार्य, खुद को वापस लौटाना होगा उर्फ "यह वापसी,"
- चेनबल फ़ंक्शन एक पैरेंट फ़ंक्शन में रहना चाहिए, jQuery में उर्फ, .css() jQuery() का एक उप तरीका है, इसलिए jQuery()। Css();
- पैरेंट फ़ंक्शन या तो खुद को या स्वयं का एक नया उदाहरण लौटा देना चाहिए।
इस उदाहरण काम किया:
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();
लेकिन यह एक नहीं करता है:
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();
फ़ंक्शंस स्वयं को वापस नहीं करते हैं, वे उस ऑब्जेक्ट को वापस करते हैं जो आपके द्वारा चुने गए तरीकों का समर्थन करता है। JQuery मामले में, यह नोड संचालित किया जा रहा है। – drudru
प्रत्येक फ़ंक्शन को 'इसे वापस करें' के साथ समाप्त करें; '। –
@MarcB - मुझे पता है, लेकिन कैसे? –