2009-11-09 9 views
15

वह कुछ इस तरह लिखने के लिए मान्य JavaScript है:टिप्पणी करते जावास्क्रिप्ट कार्यों एक ला अजगर Docstrings

function example(x) { 
    "Here is a short doc what I do."; 
    // code of the function 
} 

स्ट्रिंग वास्तव में कुछ नहीं करता है। क्या कोई कारण है, इस तरह जावास्क्रिप्ट में किसी को अपने कार्यों पर टिप्पणी क्यों नहीं करनी चाहिए?

दो अंक सवाल wiriting दौरान मैं के बारे में सोच सकता है:

  • स्ट्रिंग शाब्दिक शुरू किया जा सकता है, जो लंबे समय

  • स्ट्रिंग शाब्दिक में महंगा हो सकता है के रूप में मान्यता नहीं दी जाएगी जेएस मिनीफायर्स द्वारा हटाने योग्य

कोई अन्य अंक?

संपादित करें: क्यों मैं इस विषय को लाया: मैं John Resig's Blog, जहां नई ECMA 5 मानक एक नहीं सौंपा स्ट्रिंग "सख्त मोड" सक्षम करने के लिए शाब्दिक का उपयोग करता है पर कुछ इस तरह मिल गया। अब इस तरह के दस्तावेज करने में उपयोग या खतरे हो सकते हैं, तो मूल्यांकन करने के लिए मेरी दिलचस्पी थी।

+0

और ऐसा करने का हित है ...? – mjv

+2

असल में, यूयूआई कंप्रेसर इसे हटाने योग्य के रूप में पहचानता है और इसे हटा देता है। –

+2

@mjv: ... एक भाषा की विशेषताओं का प्रयोग और मूल्यांकन करने के लिए। क्या आपने कभी लेगो (टीएम) नहीं खेला है? – Boldewyn

उत्तर

13

जावास्क्रिप्ट में ऐसा करने में वास्तव में कोई बात नहीं है। पायथन में, स्ट्रिंग को कार्य, कक्षा या मॉड्यूल के __doc__ सदस्य के रूप में उपलब्ध कराया गया है। तो इन दस्तावेजों को आत्मनिरीक्षण के लिए उपलब्ध हैं, आदि

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

+1

कुछ जावास्क्रिप्ट इंजन इसे अनुकूलित करते हैं और स्ट्रिंग को हटाते हैं। '(फ़ंक्शन() {" foobar "})। toString (-1) ===" फ़ंक्शन() {} "' spidermonkey में। –

+0

यह अच्छा है, लेकिन जावास्क्रिप्ट में ऐसा करके अभी भी कुछ हासिल नहीं किया जा सकता है। भाषा के डिजाइन को क्यों हटा दें? –

+0

मुझे पूरी तरह से यकीन नहीं है, अगर यह उपversण है: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ – Boldewyn

1

मैं अपने कोड में बहु-पंक्ति तारों को \ n के साथ कूड़े बिना जोड़ने का एक तरीका ढूंढ रहा था। ऐसा लगता है कि इस मॉड्यूल की तरह बिल फिट बैठता है: https://github.com/monolithed/doc

दुर्भाग्य से, टिप्पणियों minification से बच नहीं होगा, लेकिन मैं आपको एक संकलन कार्य docstrings करने के लिए "\ n" प्रारूप कन्वर्ट करने के लिए लिख सकता है लगता है।

+0

यह बहुत दिलचस्प है, लेकिन, कृपया मेरे साथ धैर्य रखें, मुझे प्रश्न की प्रासंगिकता दिखाई नहीं दे रही है। रास्ते में StackOverflow में आपका स्वागत है! – Boldewyn

+1

यह एक जेएस एक पायथन डॉकस्ट्रिंग के बराबर है। तो आप अपनी डॉक्टर को एक टिप्पणी के रूप में जोड़ते हैं, और फिर इसे __doc__ संपत्ति के माध्यम से एक्सेस कर सकते हैं। आप यहां परीक्षणों में कुछ उदाहरण देख सकते हैं: https://github.com/monolithed/__doc__/blob/master/tests/__doc__.js मैं पूरी तरह से स्पष्ट नहीं हूं कि आप क्या करने का प्रयास कर रहे हैं, लेकिन आप दस्तावेज़ीकरण के लिए इस दृष्टिकोण का उपयोग कर सकते हैं। – adampasz

+0

आह, मैं देखता हूं: मेरे पास मानक जेएस टिप्पणियों में पायथन के '__doc__' के फायदे हैं, इसलिए स्ट्रिंग के साथ प्रयोगों की कोई आवश्यकता नहीं है ... अच्छा विचार। (प्रश्न के साथ मेरा मूल इरादा स्ट्रिंग्स डब्ल्यू/ओ को असाइन करने की संभावना की मूल्यांकन करना था, लेकिन मैं सहमत हूं, यह उपयोग के बिना व्यर्थ है।) – Boldewyn