बस मस्ती के लिए
:
function User(first,last,id){
User.Instance = User.Instance|| function(firstname,lastname,id){
this.firstname = firstname || 'nofirstname';
this.lastname = lastname || 'nolastname';
this.id = id || 0;
if (!User.Instance.prototype.nameUpper){
User.Instance.prototype.nameUpper = function(){
return this.name.toUpperCase();
};
User.Instance.prototype.resetId = function(){
this.id = 0; return this;
};
User.Instance.prototype.toString = function(){
return [this.id,': ',
this.firstname[0].toUpperCase(),
this.firstname.slice(1),
' ',
this.lastname[0].toUpperCase(),
this.lastname.slice(1)].join('');
};
}
}
return new User.Instance(first,last,id);
}
//usage
var pete = User('pete','johanssen',1),
jean = User('jean','harlowe',2),
mary = new User('mary','wsnovsky',3);
console.log(pete); //=> 1: Pete Johanssen'
console.log(mary); //=> 3: Mary Wsnovsky'
अपने प्रश्न के संबंध में: यह भी new
कीवर्ड भूल के खिलाफ की रक्षा के लिए एक तरीका हो सकता है मैं विचार करेगा 'अच्छा प्रैक्टिस' काफी प्रामाणिक/अनुमान। क्या यह हर दिन गायों की आंख खाने के लिए 'अच्छा अभ्यास' है? अगर मैं इसका उत्तर देना चाहता था, तो मैं नहीं कहूंगा, लेकिन मुझे यकीन है कि दुनिया में हर कोई इससे सहमत नहीं होगा। भूल गए new
कीवर्ड को रोकने के लिए आपके द्वारा प्रदर्शित पैटर्न का उपयोग करना अच्छा या बुरा नहीं है। यह आपके द्वारा निर्धारित मानदंडों पर निर्भर करता है: क्या आप एक निश्चित कठोरता को लागू करना चाहते हैं, या आप अपने या अपने सहयोगियों के खिलाफ सुरक्षा करना चाहते हैं? क्या पैटर्न कम प्रदर्शन करेगा? क्या chukj की सख्तता सभी स्थितियों में काम करेगी, और यदि नहीं, तो क्या यह आपके लिए पर्याप्त होगा?
मुझे पसंद है चीजों में से एक और जावास्क्रिप्ट में नफरत इसकी लचीलापन है। JSLint, जहाँ तक मैं डगलस Crockford की व्याख्यान से समझ में आया, एक समान प्रोग्रामिंग शैली करने के लिए आप के लिए मजबूर करने डिज़ाइन किया गया है - उनके ही शब्दों में:
jslint का उपयोग कर आप
को नुकसान होगा लेकिन दूसरी तरफ, jslint 'टोलरेट गलत निर्देशित परिभाषाओं', 'टोलरेट अनैपिटाइज्ड कन्स्ट्रक्टर' इत्यादि जैसे विकल्पों का उपयोग करके उस बल को कम करने के लिए बहुत सारी संभावनाएं प्रदान करता है। दूसरे शब्दों में, jslint का उपयोग करके, 'अच्छा अभ्यास' नहीं है अस्पष्ट रूप से परिभाषित किया गया।
कभी-कभी जावास्क्रिप्ट समुदाय 'जावास्क्रिप्ट संप्रदाय का चर्च' जैसा व्यवहार करता है। इसमें हम बहुत सख्त विश्वासियों को पाते हैं, जिनके लिए कानून का कानून कानून है, और इसके लिए हर विचलन एक मुख्य पाप है (जिसके लिए "सख्त" का विशेष रूप से आविष्कार किया जा सकता है;)। अन्य एक और व्यावहारिक पथ का पालन करें।नियमित चर्च के लोग और लोग कभी नहीं दिखते हैं। Schisms उभरा। कुछ इस चर्च को छोड़ने और एक नया पाया जाने की योजना बना रहे हैं, उदा। जहां classes
की अनुमति है और अच्छे और पवित्र माना जाता है।
जैसा कि अब तक स्पष्ट हो सकता है: मुझे लगता है कि 'अच्छी प्रैक्टिस' जैसी कोई चीज़ नहीं है। या इसे अधिक छद्म-धार्मिक शब्दों में वाक्यांश के लिए: अच्छा अभ्यास दर्शक की आंखों में है।
मुझे लगता है कि यदि आप सार्वजनिक पुस्तकालय विकसित कर रहे हैं, तो आपको केवल परेशान करने की आवश्यकता है, जहां लोग गलती से 'उपयोगकर्ता()' के बजाय 'उपयोगकर्ता() 'को कॉल कर सकते हैं। –