Chrome देव टूल एक दिनांक __proto__ को अमान्य दिनांक के रूप में क्यों दिखाता है?


89

मुझे पता __proto__है कि पदावनत किया गया है (या मानक का हिस्सा नहीं है) और वह सब लेकिन मैं अभी भी उत्सुक हूं कि इसका क्या मतलब है जब यह अमान्य तिथि कहता है जब मैं __proto__मूल्य को देखता हूं ।

var myDate = new Date(1331869050000);

जवाबों:


87

"मैं अभी भी उत्सुक हूं कि इसका क्या मतलब है जब यह अमान्य तिथि कहता है"

यह बस कंस्ट्रक्टर फ़ंक्शन toStringके prototypeऑब्जेक्ट का मूल्य है Date


Date.prototype.toString(); // "Invalid Date"

यदि आप चाहें तो आप इसे ओवरराइड कर सकते हैं ...

Date.prototype.toString = function() { return "I like turtles." };

var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.

थोड़ा दूर का विषय, लेकिन __proto__ECMAScript के अगले संस्करण के लिए मौजूदा कामकाजी मसौदे में कोडनेम हार्मनी है।

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

  • निर्दिष्ट __proto__विशेषता के साथ अनुभाग B.3.1 जोड़ा गया ।

49
आप करीब हैं, लेकिन "क्यों" भाग अभी भी गायब है, इसका कारण यह है कि Date.prototypeवस्तु अपने आप में एक दिनांक वस्तु है लेकिन इसकी [[PrimitiveValue]]आंतरिक संपत्ति है NaN(यह तारीख पर वस्तुओं की आंतरिक संपत्ति समय मूल्य संग्रहीत करता है), इसलिए यह प्रतिनिधित्व नहीं करता है वास्तव में एक वैध तारीख। Date.prototypeइसी तरह की एक वस्तु है new Date(NaN)...
क्रिश्चियन सी। साल्वादो

@ सीएमएस: समझ में आता है। यह अच्छी जानकारी है। यदि आप चाहें तो इसे उत्तर में जोड़ने के लिए स्वतंत्र महसूस करें।

4
इसलिए मूल रूप से, कोई त्रुटि नहीं है और क्रोम सिर्फ स्ट्रोस्ट्रिंग () को प्रतिबिंबित कर रहा है जो सही मूल्य नहीं दिखाता है
कैट लिम रुइज

3
साथ ही कछुओं के प्यार के लिए एक
लड़के

2

आपने एक नई दिनांक वस्तु बनाने पर विचार करते हुए, मैं इसके बारे में चिंता नहीं करूंगा। यदि आप इस कोड को आजमाते हैं, तो इसका कारण:

var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined')    //true

यह निर्धारित करेगा कि आप दिनांक ऑब्जेक्ट विधियों को इनहेरिट कर रहे हैं और वास्तव में, दिनांक IS निर्धारित है।

यदि आप आगे की जांच करना चाहते हैं, तो इस पोस्ट को देखें।


0

दिनांक उदाहरण के प्रोटोटाइप का कोई परिभाषित मूल्य नहीं है। केवल उदाहरण के लिए एक मूल्य है। आप इसे परिभाषित करते हैं जब आप इसे तुरंत करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.