Simple JavaScript String.replace.call results in "InternalError: too much recursion" -
निम्नलिखित जावास्क्रिप्ट "वर्ग" परिभाषा को देखते हुए:
var कोटा = फ़ंक्शन (totalMinutes) {This.totalMinutes = parseInt (कुल मिनट || 0, 10); }; कोटा.प्रोतिटिप.वल्यूओफ़ी = फ़ंक्शन () {this.TotalMinutes लौटें; }; कोटा.प्रोटोटाइप.टस्टिंग = फ़ंक्शन (प्रारूप) {format = format || "Hh: mm"; वापसी format.replace.call (यह, / hh?? Mm? / मिमी, फ़ंक्शन (मैच) {स्विच (मैच) {मामला "hh": यह वापसी। कुल वापसी * 60; मामला "मिमी": इस वापसी कुल मात्रा; }}); };
क्या आप कृपया बता सकते हैं कि नीचे दिए गए कॉल को toString ()
...
var q1 = नया कोटा ( 60); Console.log (q1.toString ());
... परिणाम निम्न त्रुटि उठाए जा रहे हैं:
आंतरिक त्रुटि : बहुत अधिक पुनरावर्ती {message = "बहुत अधिक Recursion ", और ...}
मैं फ़ायरबग कंसोल में कोड (फ़ायरफ़ॉक्स 3.5.7 + फायरबग 1.5) चला रहा हूँ। आदर्श रूप से मैं यह जानना चाहता हूं कि toString ()
पर रिकर्सिव कॉल कहां और आपके सुझावों के लिए कि कैसे फ़ंक्शन को यहां कार्यान्वित किया जा सकता है या
< Div class = "post-text" itemprop = "text">
रिटर्न स्वरूप.रेप्पल.कॉल (यह, / एचएच? | एमएम? / जी, फ़ंक्शन (मैच)
format.replace
कॉल करने की कोशिश करता है this.toString
, जो एक अनंत पुनरावृत्ति में समाप्त होता है। जैसा कि अनुरोध किया गया है, यह एक ऐसा प्रमाण है जो होता है:
var कोटा = फ़ंक्शन (कुल मिनट) {this.totalMinutes = parseInt (totalMinutes || 0, 10);}; कोटा.प्रोटीटिप.टस्टिंग = फ़ंक्शन (प्रारूप) {चेतावनी ("कोटा.प्रोटोटाइप .स्टस्टिंग को" );}; Var q1 = नया कोटा (60); var a = "string" .replace.call (q1, 'हैलो', 'विश्व');
इसके बजाय इसे आज़माएं:
<पूर्व> रिटर्न format.replace (/ hh? | Mm? / G, फ़ंक्शन (मैच)
संपादित करें
समस्याएं एक तरफ, फ़ंक्शन को मौजूदा कोटा तक पहुंचने की अनुमति देने का सबसे अच्छा तरीका मुझे एक var बनाना है इसे बंद करने के बाहर योग्य है:
कोटा.प्रोटोटाइप.टस्टिंग = फ़ंक्शन (प्रारूप) {format = format || "Hh: mm"; Var कोटा = यह; वापसी प्रारूप.रेले (/ एचएच | एमएम / जी, फ़ंक्शन (मैच) {स्विच (मैच) {मामला "एचएच": रिटर्न कोटा। कुल मिनट / 60; मामले "मिमी": रिटर्न कोटा। कुल मिनट;} वापसी मैच;}) ; };
Comments
Post a Comment