2012-02-16 7 views
17

शास्त्रीय ओओपी पृष्ठभूमि से आ रहा है मैंने हाल ही में जावास्क्रिप्ट के बारे में और जानना शुरू कर दिया है। हालांकि, एक बात है जिसे मैं काफी समझ नहीं सकता:एकाधिक फ़ाइलों में जेएस फ़ंक्शंस को व्यवस्थित करने के लिए कैसे करें

शास्त्रीय ओओपी भाषाओं में आप आमतौर पर प्रत्येक वर्ग के लिए एक अलग फ़ाइल बनाते हैं, क्योंकि इससे आपके कोड को बनाए रखना आसान हो जाता है। जेएस के पास असली कक्षाएं नहीं हैं, और जहां तक ​​मुझे पता है कि एक फ़ाइल से एक और जेएस फ़ाइल को शामिल करने के लिए एक वास्तविक सीधा तरीका भी नहीं है। हालांकि, जब आप एक बड़ी जेएस परियोजना पर एक टीम के साथ काम कर रहे हैं तो आप शायद परियोजना को कई फाइलों में विभाजित करना चाहते हैं। यह कैसे किया जाता है? आप उन फ़ाइलों में क्या डालते हैं और आप उन्हें कैसे ठीक से लोड करते हैं?

उत्तर

9

मैं आपके सवाल का प्यार करता हूँ। मैं अपनी जावास्क्रिप्ट बहुत ऑब्जेक्ट ओरिएंटेड लिखता हूं और अपनी ऑब्जेक्ट कन्स्ट्रक्टर को अपनी फाइलों में रखता हूं। मैंने अपनी सभी .js फ़ाइलों को एक निर्देशिका में फेंक दिया है जिसे मैं उपनिर्देशिका में किसी भी तरह से व्यवस्थित कर सकता हूं। फिर मैं एक "मेक" स्क्रिप्ट चलाता हूं। मैंने लिखा एक बैश स्क्रिप्ट निम्नलिखित है। मैं एक लिनक्स मशीन पर काम करता हूं, इसलिए बैश स्क्रिप्टिंग मेरे लिए लिनक्स में काम करने वाले किसी भी व्यक्ति के लिए एक प्राकृतिक समाधान है।

#!/bin/bash 

echo '' > temp0.js 
find ./bin/external -name \*.js -exec cat {} >> temp0.js \; 

echo ''> temp1.js 
echo '(function(){' > temp1.js 
find ./bin/prop -name \*.js -exec cat {} >> temp1.js \; 
echo '})();' >> temp1.js 

cat temp0.js temp1.js > script.js 
rm temp1.js temp0.js 

मुझे माफ कर दो अगर यह बैश पटकथा शौकिया है। मैं आसानी से बैश स्क्रिप्टिंग में प्रवेश करूँगा, मैं जो भी काम करता हूं उसे एक साथ हैक करता हूं, लेकिन मुझे अपनी जावास्क्रिप्ट को साफ और संगठित और ऑब्जेक्ट ओरिएंटेड होना पसंद है।

यह बैश स्क्रिप्ट "बिन" नामक निर्देशिका के साथ एक निर्देशिका में जाती है जिसमें सभी जावास्क्रिप्ट .js फ़ाइलें शामिल होती हैं। वहां, उपनिर्देशिका "बाहरी" में JQuery जैसे विभिन्न उधार स्क्रिप्ट शामिल हैं। मैं उपरोक्त उदाहरण में "प्रोप" नामक फ़ोल्डर में अपनी खुद की .js स्क्रिप्ट डाल रहा हूं। बैश स्क्रिप्ट इन सभी स्क्रिप्ट को प्राप्त करती है और उन्हें जोड़ती है। यह एक अज्ञात फ़ंक्शन में अपनी निजी प्रोप फ़ाइलों को भी एक निजी नेमस्पेस (सॉर्टोफ) देने के लिए लपेटता है।

मुझे लगता है कि यह स्पष्ट है कि यह वही नहीं है जो आप चाहते थे - जावा - लेकिन मुझे लगता है कि इस तरह का विकल्प हमें जावास्क्रिप्ट में करना है।

+1

मुझे वास्तव में यह समाधान पसंद है! यह मुझे मिला सबसे पूरा जवाब भी है, तो धन्यवाद! – Tiddo

1

आप फ़ाइलों को किसी भी लॉजिकल विधि में समूहित कर सकते हैं। आमतौर पर यह सुविधा द्वारा किया जाता है - यह फ़ाइल लोगो को एनिमेट करती है, यह फ़ाइल मुखपृष्ठ स्लाइडशो फ़ंक्शन बनाती है, यह फ़ाइल नेविगेशन बार ड्रॉप-डाउन को संभालती है। मैं कल्पना करता हूं कि आम तौर पर आपकी टीम एक समान संगठन में टूट जाती है, जहां प्रत्येक व्यक्ति किसी विशेष सुविधा के लिए ज़िम्मेदार होता है। इसके अलावा, स्रोत नियंत्रण प्रबंधन किसी भी अन्य प्रोजेक्ट की तरह काम करता है, जहां उपयोगकर्ताओं को कोड पर जांच करने या प्रतिबद्ध करने की आवश्यकता होती है।

4

जावाScripts प्रोटोटाइप मॉडल बहुत ओओपी है और आप जितनी चाहें उतनी फाइलों में कोड को तोड़ने के लिए स्वतंत्र हैं। निर्भरता लोड करने के कुछ अलग-अलग तरीके हैं, RequireJS एक लोकप्रिय होने के नाते।

2

आपको अपनी परियोजना के लिए जो कुछ भी समझ में आता है, उसे कोड को सेगमेंट करना होगा।

स्क्रिप्ट को शामिल करने के तरीके के रूप में, यह और अधिक कठिन है। सबसे आसान तरीका है, या तो क्रमिक रूप से एचटीएमएल (<script src="..."></script><script src="..."></script>) से कहा जाता है या एक निर्भरता प्रबंधक या Yepnope या RequireJS तरह लोड स्क्रिप्ट के साथ .., बस कई JavaScript फ़ाइलों को शामिल करने के लिए है

लेकिन यदि आप सिर्फ एक स्क्रिप्ट शामिल करना चाहते हैं अपने HTML से, आप (Ant या कुछ इसी तरह के साथ एक निर्माण स्क्रिप्ट का उपयोग) फ़ाइलें जोड़ सकते हैं या यहाँ वर्णित की तरह अन्य लिपियों शामिल करने के लिए जावास्क्रिप्ट को हैक: How do I include a JavaScript file in another JavaScript file?

संबंधित मुद्दे

 संबंधित मुद्दे