संदर्भ के नीचे दोनों कोड ब्लॉक, संदर्भ में और पूरी तरह कार्यात्मक रूप से समकक्ष लगते हैं। मैं js prototypes उचित रूप से अच्छी तरह से समझता हूं, इसलिए मैं उनके बारे में नहीं पूछ रहा हूं (जब तक कि एकमात्र अंतर है)।व्यूमोडेल। प्रोटीोटाइप। फ़ंक्शन बनाम स्वयं। एक व्यूमोडल में फ़ंक्शन?
बल्कि, जैसा कि नीचे दिखाया एक दृश्य के मॉडल पर एक विधि डाल करने के लिए दो आसान तरीके की तुलना, कोई निहितार्थ हैं/Knockout, उदा मतभेद बाध्यकारी समय?
परिभाषित ([ "नॉकआउट", "पाठ ./ home.html!"], समारोह (ko, homeTemplate) {// < - एक AMD Module
function HomeViewModel(route) { var self = this; self.message = ko.observable('Snacks!'); self.eatSomething = function() { self.message('Yum, a viewmodel snack.'); }; } return { viewModel: HomeViewModel, template: homeTemplate }; });
जोड़ने बनाम
परिभाषित ([ "नॉकआउट", "! पाठ ./ home.html"], समारोह (ko, homeTemplate) {
0123: प्रोटोटाइप के माध्यम से विधि});
(कोड एक Knockout generator के माध्यम से Yeoman's मचान उत्पादन का एक सरल आधुनिक है। यह एक knockout component, एक काफी हाल ही में (KO 3.2) और बहुत स्वागत सुविधा के लिए बॉयलर प्लेट कोड बनाया। एक अच्छा KO घटक व्याख्याता here. है)
सहायक स्पष्टीकरण - ** 'खुलासा मॉड्यूल पैटर्न' ** से आपका क्या मतलब है? बीटीडब्लू, मैं बस आपके [नॉकआउट एएमडी हेल्पर्स] (https://github.com/rniemeyer/knockout-amd-helpers) पर ठोकर खा रहा हूं - बेहद उपयोगी दिखता है - खासकर मॉड्यूल जैसे अपने टेम्पलेट्स। तो इसके लिए भी बहुत धन्यवाद! –
खुलासा मॉड्यूल पैटर्न का वर्णन करने वाले कुछ लिंक यहां दिए गए हैं, यहां एक है: http://weblogs.asp.net/dwahlin/techniques-strategies-and-patterns-for-structuring-javascript-code-revealing- मॉड्यूल- पैटर्न। असल में, आप जो भी तरीके आंतरिक रूप से चाहते हैं उसे परिभाषित करते हैं और वेरिएबल को सीधे संदर्भित करने में सक्षम हैं। फिर, आप उन मॉड्यूल से सार्वजनिक "एपीआई" वापस कर सकते हैं जिन तरीकों से आप उन्हें बेनकाब करना चाहते हैं, जिनके नाम आप बेनकाब करना चाहते हैं। उम्मीद है की वो मदद करदे! –
@RPNiemeyer - क्या आपने इस सटीक प्रश्न पर कोई ब्लॉग नहीं लिखा है? मैंने सोचा कि मुझे अतीत में पढ़ना याद आया और गुगल रहा है और यह वह जगह है जहां मैं समाप्त हुआ – user210757