2008-12-14 3 views
14

स्टैकर्स की सिफारिश पर, मैं क्रॉकफोर्ड के उत्कृष्ट जावास्क्रिप्ट को पढ़ रहा हूं: गुड पार्ट्सजावास्क्रिप्ट के "अच्छे हिस्सों" का उपयोग करने का सबसे अच्छा तरीका

यह एक अच्छी किताब है, लेकिन चूंकि इसमें से अधिकांश जावास्क्रिप्ट की मूल कार्यक्षमता का उपयोग करने का सबसे अच्छा तरीका वर्णन करने के लिए समर्पित है, इसलिए मुझे यकीन नहीं है कि मैं कई अन्य जावास्क्रिप्ट प्रोग्रामर के प्रयासों को डुप्लिकेट किए बिना अभ्यास में अपनी सलाह कैसे डाल सकता हूं ।

उदाहरण के लिए, इस मार्ग लें:

जब आप एक नया वस्तु बनाने के लिए, आप उद्देश्य यह है कि अपने प्रोटोटाइप होना चाहिए चुन सकते हैं। जावास्क्रिप्ट यह करने के लिए प्रदान करता है यह तंत्र गन्दा और जटिल है, लेकिन इसे काफी सरल बनाया जा सकता है। हम Object फ़ंक्शन में create विधि जोड़ देंगे। create विधि एक नई ऑब्जेक्ट बनाता है जो पुराने ऑब्जेक्ट का प्रोटोटाइप के रूप में उपयोग करती है।

if (typeof Object.create !== 'function') { 
Object.create = function(o) { 
    var F = function() {}; 
    F.prototype = o; 
    return new F(); 
} 

मैं मैन्युअल रूप से मेरे सारे जावास्क्रिप्ट परियोजनाओं के लिए इस कोड जोड़ सकते हैं, लेकिन सब कुछ का ट्रैक रखने के लिए एक विशाल दर्द होगा।

वहाँ रहे हैं किसी भी लाइब्रेरी कि अच्छा भाग की अनुशंसाएं लागू करने और इस तरह मुझे उन पर नज़र रखने के लिए होने की परेशानी को बचाने (/ शारीरिक रूप से उन सब को बाहर टाइप)?

+0

क्रॉकफोर्ड की पुस्तक –

+0

+1 पढ़ने के लिए +1 अच्छा प्रश्न! मुझे यह भी लगता है कि मैं पहिया को फिर से शुरू कर रहा हूं। – orip

+0

यह मेरी किताब पढ़ने के बाद मेरे पास बिल्कुल सही सवाल था। –

उत्तर

5

Prototype में Class helper समेत कई शानदार विशेषताएं हैं जो ऑब्जेक्ट प्रोटोटाइप के माध्यम से जेएस "विरासत" के विवरण को संभालती हैं।

संपादित करें: लानत है, मैं भूल jQuery (मेरी पसंद के स्वयं के पुस्तकालय) jQuery.extend

+0

'jQuery.extend()' ऑब्जेक्ट्स को पारित ऑब्जेक्ट्स को लक्ष्य ऑब्जेक्ट में कॉपी करता है। आप लक्ष्य ऑब्जेक्ट के लिए प्रोटोटाइप निर्दिष्ट नहीं कर सकते हैं।IOW: यह 'Object.create() 'से भिन्न उद्देश्य प्रदान करता है। – feklee

1

वह याहू के लिए काम नहीं करता है कि रहते हैं? आप हमेशा Yahoo User Interface libraries का उपयोग कर सकते हैं।

व्यक्तिगत रूप से, मैं JQuery पर आंशिक हूं, क्योंकि यह मुझे अधिक संक्षेप में मारता है, लेकिन आप जानते हैं: पाठ्यक्रमों के लिए घोड़े।

1

Dojo क्रॉकफोर्ड के विचारों का बहुत निकटता से पालन किया है। उदाहरण के लिए, आपके द्वारा ऊपर दिए गए कोड स्निपेट का कार्यान्वयन dojo.delegate (एक तेज़ रूप में) के तहत कार्यान्वित किया गया है।

मुझे नहीं लगता कि एक विशिष्ट परियोजना है जो टी के लिए उनकी सिफारिशों का पालन करती है। अधिकांश टूलकिट वास्तव में उनकी कुछ सिफारिशों और पैटर्न से असहमत हैं। यदि आप उपरोक्त उस कोड स्निपेट की तरह विशिष्ट कार्यक्षमता के बारे में सोच रहे हैं, तो यह जानने के लायक होगा कि आप अपनी परियोजनाओं में किस पुस्तक का उपयोग करना चाहते हैं।

0

मुझे लगता है कि यूयूआई अपनी पुस्तक में क्रॉकफोर्ड सिखाता है। (वह याहू वास्तुकार भी है और यह समझ में आता है)

0

es5-shim पर एक नज़र डालें, एक लाइब्रेरी जो और अन्य चीजों के लिए अपूर्ण - शिम प्रदान करती है।

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

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