2016-08-09 5 views
5

जेएस में कुछ गुण हैं जो प्रोटो जैसे डबल अंडरस्कोर के साथ शुरू होता है/समाप्त होता है। लेकिन मुझे पता है कि यह constructor.prototype के बराबर है, है ना? मैं जानना चाहता हूं कि ES5/ES6 मानक में इन xxx_ संपत्ति के नाम शामिल हैं या वे केवल कार्यान्वयन विशिष्ट कीवर्ड हैं, अलग-अलग कार्यान्वयन में अलग-अलग व्यवहार हो सकते हैं?क्या जावास्क्रिप्ट संपत्ति नाम जैसे "__proto__" ES5/6 में मानकीकृत नहीं हैं?

प्लस: मैं यह कहां देख सकता हूं कि कोई कीवर्ड ईएस स्टार्डर्ड का हिस्सा है, किसी भी अनुशंसित वेब साइट्स?

धन्यवाद।

+2

यह 'प्रोटोटाइप' के बराबर नहीं है। '__proto__' ऑब्जेक्ट प्रोटोटाइप के संदर्भ में है। 'प्रोटोटाइप' में ऑब्जेक्ट होता है जो इस कन्स्ट्रक्टर द्वारा उत्पन्न उदाहरणों का प्रोटोटाइप होगा। कन्स्ट्रक्टर के पास अलग-अलग प्रोटोटाइप होते हैं (आप इसके लिए कन्स्ट्रक्टर के '__proto__' की जांच कर सकते हैं) – Maxx

उत्तर

4

मुझे पता है कि यह constructor.prototype के बराबर है, है ना?

No

मैं जानना चाहता ES5/ES6 मानक इन __xxx__ संपत्ति के नाम शामिल है कि क्या चाहते हैं, या वे सिर्फ कार्यान्वयन विशिष्ट खोजशब्दों कर रहे हैं, विभिन्न कार्यान्वयन में अलग व्यवहार कर सकता है?

आप MDN documentation में एक सिंहावलोकन मिल सकता है, देखते हैं __count__, __noSuchMethod__, __parent__, __proto__, __defineGetter__, __defineSetter__, __lookupGetter__, और __lookupSetter__; और उनमें से सभी को बहिष्कृत कर दिया गया है। गेको की तुलना में अन्य कार्यान्वयन में अधिक दिखाया गया हो सकता है।

केवल गेटर/सेटर विधियों और __proto__ कार्यान्वयन के बीच आम थे, और केवल __proto__ got into the compatibilty section of the ES6 standard

मैं कहां से जांच सकता हूं कि कोई कीवर्ड ईएस स्टार्डर्ड का हिस्सा है, किसी भी अनुशंसित वेब साइट्स?

बस the standards themselves पढ़ें!

संबंधित मुद्दे