2011-01-31 19 views
5

जैसा कि आप जानते हैं, जावास्क्रिप्ट में सभी जावा कीवर्ड आरक्षित हैं। क्या किसी को पता है क्यों? जावास्क्रिप्ट इन जावा कीवर्ड का उपयोग करके हतोत्साहित करता है, लेकिन पहचानकर्ताओं के रूप में उपयोग किए जाने पर वे ठीक काम करने लगते हैं।जावास्क्रिप्ट जावा कीवर्ड क्यों सुरक्षित रखता है?

+0

मैं मान लें कि यह उन कीवर्ड के उपयोग की अनुमति न देने के लिए ईसीएमएस्क्रिप्ट विनिर्देश का हिस्सा था। – drudge

+2

कृपया ध्यान दें कि केवल वे लोग जो वास्तव में उत्तर जानते हैं वे जावास्क्रिप्ट के मूल लेखक हैं। हम सभी बाकी यहां अनुमान लगा सकते हैं। –

+1

जावास्क्रिप्ट ईसीएमएस्क्रिप्ट स्पेक के अस्तित्व को पूर्व-दिनांकित करता है। क्या ये आरक्षित शब्द पहले मौजूद थे? (मुझे नहीं पता ...) –

उत्तर

4

कहानी यह है कि जब वे जावास्क्रिप्ट विकसित कर रहे थे (मूल रूप से ओक मुझे विश्वास है (जाहिर है, मुझे भाषाओं के मूल नाम के बारे में पिछले बयान को मिश्रित किया गया है, तो गलत है।)), नेटस्केप ने इसे विकसित करने के लिए सूर्य के साथ भागीदारी की। जावा समुदाय को लुभाने के लिए, वे जावा जैसी जावास्क्रिप्ट बनाना चाहते थे, ताकि जावा डेवलपर्स इसके साथ अधिक सहज महसूस कर सकें, और इसी कारण से वे समान हैं।

किसी भाषा को डिजाइन करने के बारे में आपको क्या याद रखना है कि आप वास्तव में केवल कीवर्ड को परिभाषित करने के लिए एक शॉट प्राप्त करते हैं, बिना मौजूदा कोड को तोड़ने का नया संस्करण। शुरुआत में एक शब्द आरक्षित करना और इसे बाद में आरक्षित करने के बजाय इसका उपयोग करना बहुत आसान है। यह विशेष रूप से जावास्क्रिप्ट जैसी चीजों के लिए सच है जहां स्क्रिप्ट विकसित करने वाले व्यक्ति का कोई नियंत्रण नहीं है कि यह किस ब्राउज़र में चल रहा है (यह अब होता है, लेकिन यह बहुत खराब हो सकता है)। क्या आप कल्पना कर सकते हैं कि यह पता लगाने के लिए कि नए ब्राउजर द्वारा अपनाए गए जावास्क्रिप्ट का अगला संस्करण अचानक आपके एप्लिकेशन को नहीं चलाएगा, क्योंकि उन्होंने एक नया कीवर्ड आरक्षित किया है?

+1

जावा (जेएस नहीं) को शुरुआती चरण में ओक कहा जाता था। – delnan

+0

एक्मास्क्रिप्ट 5 सख्त मोड (ऑप्ट-इन) उन नामों को परिवर्तनीय नामों के रूप में अवैध बनाता है। हो सकता है कि आप उन नामों के लिए अपनी स्क्रिप्ट जांचना चाहें, ताकि आप सख्त मोड का लाभ उठा सकें। – Neil

+0

@Neil, यह सच है, लेकिन समस्या यह है कि वास्तव में कुछ भी सख्त मोड का उपयोग नहीं करता है। आप इसे JSLint जैसे कुछ के साथ देख सकते हैं, लेकिन आप अपने लिए सख्त नियमों को लागू करने के लिए एक आधुनिक ब्राउज़र पर भरोसा नहीं कर सकते हैं। – kemiller2002

3

संभावित रूप से संभावित भ्रम से बचने के लिए कि इन खोजशब्दों का उपयोग चर नामों के कारण हो सकता है।

मेरा मतलब है, बस कल्पना करें कि एक जावा डेवलपर जावास्क्रिप्ट कोड का एक टुकड़ा या public नामक फ़ंक्शन के साथ एक टुकड़ा निकालने का प्रयास कर रहा है।

यहां तक ​​कि जब भी संभव हो, मैं स्पष्टता के लिए इसके खिलाफ सलाह दूंगा।

3

संभावित रूप से जावास्क्रिप्ट के डेवलपर्स ने माना कि इन शब्दों का उपयोग जावास्क्रिप्ट की भावी रिलीज में अतिरिक्त कार्यक्षमता के लिए किया जा सकता है। पिछड़ा-संगतता समस्याओं को रोकने के लिए, इन शब्दों को पहले से ही आरक्षित के रूप में चिह्नित किया गया था।

4

ठीक है, यह वास्तव में जावा कीवर्ड नहीं है, क्योंकि जावास्क्रिप्ट का नाम उधार लेने के अलावा जावा के साथ कुछ भी नहीं है।

नामों को आरक्षित किया गया था यदि उन्हें भाषा के भविष्य के विस्तार में आवश्यकता होगी। ECMAScript Language Specification से:

"इन शब्दों के प्रस्तावित एक्सटेंशन में कीवर्ड और के रूप में उपयोग किया जाता है इसलिए उन एक्सटेंशन के भविष्य के गोद लेने की संभावना के लिए अनुमति देने के लिए आरक्षित हैं ..."

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