Google Chrome में कोड डीबग करते समय, यह था देखा गया कि नेस्टेड सरणियों से निपटते समय कंसोल.लॉग() अजीब व्यवहार करता है। जब किसी सरणी को लॉग किया गया था, तो लॉगिंग के बाद उसके आंतरिक मान को संशोधित करने के परिणामस्वरूप लॉग आउटपुट लॉगिंग के समय मान के बजाय अद्यतन मान को दर्शाता था। फ़ायरफ़ॉक्स में यह व्यवहार अनुपस्थित था।
जांच से आगे पता चला कि असंगतता तब उत्पन्न हुई जब लोडिंग के दौरान क्रोम कंसोल खुला था। कंसोल शुरू में बंद होने और पृष्ठ लोड होने के बाद खुलने के साथ, कंसोल.लॉग() ने लॉगिंग के समय सरणी के वास्तविक मान प्रदर्शित किए।
गहन शोध के बाद, यह पता चला कि इस व्यवहार को वेबकिट में एक बग के रूप में स्वीकार किया गया था। हालाँकि, एक सुधार अगस्त 2012 में लागू किया गया था और अभी तक Google Chrome में जारी नहीं किया गया है। व्यवहार्य न हो. इसके अतिरिक्त, सटीक मान बनाए रखने के लिए ऑब्जेक्ट प्रॉपर्टी परिवर्तनों को सुनना व्यावहारिक नहीं होगा।
कंसोल.लॉग() का वर्तमान कार्यान्वयन ऑब्जेक्ट को कंसोल में प्रदर्शित करते समय क्लोनिंग से बचाता है। इसके बजाय, लॉगिंग करते समय संक्षिप्त पूर्वावलोकन उत्पन्न होते हैं, जो ऑब्जेक्ट के गुणों का एक स्नैपशॉट प्रदान करते हैं। ऐसा केवल तभी होता है जब कंसोल पहले से ही खुला हो, जो कंसोल की प्रारंभिक स्थिति के आधार पर व्यवहार में विसंगति की व्याख्या करता है।
Google Chrome के कंसोल.लॉग() में यह असंगत व्यवहार है कंसोल के भीतर ऑब्जेक्ट हैंडलिंग के कार्यान्वयन के कारण। अपेक्षित व्यवहार बना रहना चाहिए क्योंकि पूर्वावलोकन लॉगिंग के समय ऑब्जेक्ट के मूल्यों को दर्शाता है। डेवलपर्स को इस व्यवहार के बारे में पता होना चाहिए और जब संभव हो तो वैकल्पिक डिबगिंग विधियों का उपयोग करना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3