2012-07-19 7 views
35

मैं डोजो सीखने के लिए नया हूं और मैं require() और define() फ़ंक्शंस में आया हूं और मैं उनमें से किसी के आस-पास अपना सिर नहीं प्राप्त कर सकता हूं। इसके अलावा, मैं उनमें से किसी का उपयोग कब करूंगा? एक छोटा डेमो या उदाहरण फायदेमंद होगा। बहुत धन्यवाद!डोजो में आवश्यकता() और परिभाषित() फ़ंक्शन के बीच मुख्य अंतर क्या है और हम कब उपयोग करेंगे?

+1

एक और अच्छा लिंक: [डोजो की आवश्यकता होती है() बनाम परिभाषित()] (http://g00glen00b.be/dojo-require-vs-define/)। "परिभाषित()" एक वापसी मूल्य प्रदान करता है और आलसी निर्भरता लोड करता है। इसका उपयोग अपने स्वयं के कस्टम मॉड्यूल और इसकी निर्भरताओं को परिभाषित करने के लिए किया जाता है। "आवश्यकता()" का मुख्य उपयोग मॉड्यूल आयात कर रहा है। दोनों तुल्यकालिक हैं; केवल आवश्यकता है() गैर आलसी है। – FoggyDay

उत्तर

59

require और define एसिंक्रोनस मॉड्यूल परिभाषा (एएमडी) एपीआई का हिस्सा हैं।

आप अन्य कोड द्वारा खपत किए जा सकने वाले मॉड्यूल को परिभाषित करने के लिए define का उपयोग करते हैं। आम तौर पर, define जावास्क्रिप्ट फ़ाइल में उपयोग किया जाएगा। जावास्क्रिप्ट फ़ाइल मॉड्यूल को परिभाषित कर रही है। सभी डोजो फाइलें परिभाषित करती हैं।

जब आप मॉड्यूल को परिभाषित नहीं कर रहे हैं तो आप require का उपयोग करते हैं, लेकिन आपको परिभाषित मॉड्यूल की आवश्यकता होती है। आम तौर पर, require HTML पृष्ठों में उपयोग किया जाएगा। एचटीएमएल पेज एक मॉड्यूल नहीं है, लेकिन उपयोगकर्ता को पेज पेश करने के लिए मॉड्यूल की आवश्यकता है।

एएमडी एपीआई

https://github.com/amdjs/amdjs-api/wiki/AMD

+0

बहुत अच्छा जवाब। – Krishna

+0

गलत का उपयोग करने का एक लक्षण पता चला है कोड कोड चलाने से ठीक पहले कॉलबैक लौट रहा है ... http://stackoverflow.com/questions/5590618/requirejs-calling-callbacks-before- निर्भरता-loaded-resolved?rq=1 – prototype

+0

जब आप एक नए मॉड्यूल को परिभाषित कर रहे हैं और आपको पहले से बनाए गए एक और मॉड्यूल की आवश्यकता है, तो आप मॉड्यूल की आवश्यकता के लिए परिभाषित कर सकते हैं – AhammadaliPK

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