एक प्रोजेक्ट पर मैं वर्तमान में जावास्क्रिप्ट में काम कर रहा हूं, मैं दशमलव स्वरूपों का उपयोग कर रहा हूं ताकि तारों में एक घंटे/मिनट प्रारूप का उपयोग करने के बजाय गणना करना आसान हो संबंधित परियोजना)। हालांकि उपयोगकर्ता की स्क्रीन पर समय प्रदर्शित करने के लिए, टाइमकोड को एचएच: मिमी के रूप में दिखाया जाना चाहिए।जावास्क्रिप्ट प्रोटोटाइप फ़ंक्शन: एक समय स्ट्रिंग के लिए दशमलव समय मान
मैंने सोचा कि यह इस बात के लिए एक स्ट्रिंग प्रोटोटाइप समारोह का उपयोग करने के महान के रूप में यह मेरे जैसे कोड का उपयोग करने की अनुमति होगी होगा:
var time = 8.75;
document.write("Meeting at "+time.toTime()); // writes: Meeting at 8:45
अब तक, मुझे लगता है कि मिल गया है लगभग काम कर, का उपयोग करते हुए:
String.prototype.toTime = function(){
var hrs = this.toString().slice(0,this.indexOf("."));
var min = Math.round(this.toString().slice(this.indexOf("."))/100*60);
min = min<10 ? "0"+min : min.toString();
return hrs+":"+min;
}
समस्या यह है कि यह केवल तभी काम करेगा जब परिवर्तनीय time
एक स्ट्रिंग है। अन्यथा यह एक अपरिभाषित त्रुटि देगा।
जावास्क्रिप्ट में किसी भिन्न ऑब्जेक्ट पर प्रोटोटाइप लगाने का कोई तरीका होगा, तो मुझे time.toString().toTime()
का उपयोग करने की आवश्यकता नहीं है?
धन्यवाद!
'मदद Number.prototype.toTime' चाहेंगे? और आप अपने वर्तमान कोड में '(" "+ time) .toTime()' के लिए shorthand कर सकते हैं। – Passerby
आप 'ऑब्जेक्ट.प्रोटोटाइप' का उपयोग कर सकते हैं क्योंकि सभी ऑब्जेक्ट्स इसके उत्तराधिकारी हैं। – TheBronx
व्यक्तिगत रूप से मुझे प्रोटोटाइप को विस्तारित करने के बजाय एक फ़ंक्शन को मान पास करने के लिए एक क्लीनर दृष्टिकोण माना जाता है। –