मैं सिर्फ कैसे सबसे अच्छा मेरी जावास्क्रिप्ट कोड को व्यवस्थित करने के बारे में सीख रहा हूँ के अंदर एक विधि कॉल करने, और मैं कोड के इस छोटे से टुकड़े मैंने लिखा के बारे में एक सवाल था:कैसे एक जावास्क्रिप्ट वस्तु
var reportsControllerIndex = {
plotMapPoints: function(data) {
//plots points
},
drawMap: function() {
$.getJSON('/reports.json', function(data) {
reportsControllerIndex.plotMapPoints(data);
});
},
run: function() {
reportsControllerIndex.drawMap();
}
};
सवाल यह है कि रिपोर्ट नियंत्रक इंडेक्स ऑब्जेक्ट के भीतर से नियंत्रक इंडेक्स के किसी अन्य फ़ंक्शन को कॉल करने के संबंध में। मैंने पहले रन फ़ंक्शन के लिए निम्नलिखित कोड का प्रयास किया था:
run: function() {
this.drawMap();
}
जो पूरी तरह से काम करता था। हालांकि, मैं तो जल्दी से इस drawMap समारोह के लिए कर पाया:
drawMap: function() {
$.getJSON('/reports.json', function(data) {
this.plotMapPoints(data);
});
}
, काम नहीं करता है के बाद से "इस" अब getJSON कॉल की कॉलबैक फ़ंक्शन को उल्लेख करता है।
मेरा समाधान केवल उन सभी विधियों के सामने रिपोर्ट नियंत्रक इंडेक्स रखना था, लेकिन मैं उत्सुक था: इस तरह की समग्र वस्तु के भीतर फ़ंक्शंस कॉल करने का एक और सापेक्ष तरीका है (जैसा कि आप करेंगे एक मानक ओओ भाषा में एक कक्षा के साथ)? या क्या मैं इसे करने के लिए मजबूर हूं क्योंकि मैं वर्तमान में ऑब्जेक्ट के नाम से विधियों को बुला रहा हूं?
आह, है, धन्यवाद! क्या आप कहेंगे कि कुल मिलाकर इस अभ्यास का उपयोग योशीया के सुझाव से अधिक जावास्क्रिप्ट कोड में किया जाता है? मुझे सिर्फ अपने स्वयं के ओओ मानसिकता के लिए "स्वयं" का उपयोग करने का विचार पसंद है, लेकिन मैं जेएस दुनिया में मानक प्रथाओं का पालन करना चाहता हूं जहां मैं कर सकता हूं। – joeellis
@japancheese - मुझे विश्वास नहीं है कि एक सम्मेलन है ताकि आपको अपनी पसंद का उपयोग करना चाहिए। बस नाम उचित रखना याद रखें। – ChaosPandion