2008-09-24 5 views
5

है आप लड़कों और लड़कियों को विजुअल स्टूडियो 2008 में जावास्क्रिप्ट IntelliSense विकल्पों में से सबसे बाहर बनाने के लिए कोई सुझाव या हैक्स मिल गया?जावास्क्रिप्ट IntelliSense 2008

निम्नलिखित पर विचार करें:

var Persons = {}; 
    Persons.Females = {}; 

Persons.Females.Julie = function (_mood) 
{ 
    /// <param name="_mood">Mood of Julie</param> 
    /// <summary>Constructor function: Julie, a 22 year old female</summary> 
    /// <returns>New instance of Julie</returns> 

    var breasts, thighs, stomach; // Private variables 

    this.mood = _mood; // Public variable 


    function accessBodypart(_bodypart) // Private function 
    { 
     /// <param name="_bodypart">Bodypart to access</param> 
    } 


    this.access = function (_bodypart, _accessee) // Privileged function 
    { 
     /// <param name="_bodypart">Access a bodypart on Julie</param> 
     /// <param name="_accessee">Person accessing Julie</param> 
     /// <summary>If you have sufficient rights, you may use this 
     /// function</summary> 
     /// <returns>Julie's reaction</returns> 

     if (_accessee.status === "boyfriend") 
     { 
      accessBodypart(_bodypart); 

      return "Giggles"; 
     } 

     return "Slap in the face"; 
    }; 
}; 


var happyJulie = Persons.Females.Julie("happy"); 

दृश्य स्टूडियो मुझे पता चलता "नामस्थान" और प्रलेखन विशेषताएं (<param> और <summary>) का उपयोग करता है। मैं काम करने के लिए <return> प्रलेखन सुविधा प्राप्त करने में सक्षम नहीं हूं।

अब, यह सब अच्छी तरह से और अच्छा है। लेकिन जब मैं कार्य करें:

happyJulie.access("breasts"); 

दृश्य स्टूडियो access समारोह के बारे में पता नहीं है और मैं इस पर कोई प्रलेखन मिलता है।

वहाँ किसी भी तरह से मैं, दृश्य स्टूडियो IntelliSense कार्यक्षमता के लिए सार्वजनिक चर और विशेषाधिकार प्राप्त कार्यों का पर्दाफाश कर सकते हैं, जबकि अभी भी निजी सदस्यों के साथ वस्तुओं बनाने है?

हाँ, पूरी car->wheels->tires का उपयोग कर कुछ बिंदु :)

+4

OMG। happyJulie.access ("स्तन") अब तक का सबसे अच्छा उदाहरण है। –

+0

हेहे। मुझे उम्मीद है कि यह किसी को भी दंडित नहीं करेगा :) – roosteronacid

+1

अब तक 2 आक्रामक वोट। और हम सोचते हैं कि क्यों अधिक महिला प्रोग्रामर नहीं हैं .. श्वास। –

उत्तर

4

जावास्क्रिप्ट Intellisense निश्चित रूप से परतदार जहाँ तक समारोह के सदस्यों को पहचानने के रूप में है पर पुराने हो जाता है। प्रोटोटाइप प्रतिमान का उपयोग करके मुझे थोड़ा और सफलता मिली है, इसलिए ऐसा कुछ है जिसे आप चेक आउट कर सकते हैं। अक्सर, हालांकि, मुझे लगता है कि यह अभी भी इंटेलिजेंस में विश्वसनीय रूप से कार्यों को सूचीबद्ध नहीं करेगा।
संपादित करें: के रूप में मूल रूप से पोस्ट नीचे टिप्पणी में सुझाव दिया, यह नहीं वास्तव में प्रोटोटाइप मॉडल में एक ही "निजी" कार्यक्षमता प्राप्त करने के लिए संभव। जावास्क्रिप्ट में निजी सदस्यों की अवधारणा नहीं है, लेकिन आप फंक्शन कन्स्ट्रक्टर में घोषित करके सदस्य गोपनीयता को बंद कर सकते हैं। इसका मतलब यह है कि यदि आपके पास ऐसे कार्य हैं जिन्हें सदस्यों तक पहुंचने की आवश्यकता है, तो उन्हें भी कन्स्ट्रक्टर में होना होगा, इसलिए वे प्रोटोटाइप नहीं हो सकते हैं।
तो प्रोटोटाइप मॉडल का उपयोग करते समय हो सकता है (या नहीं हो सकता) आप Intellisense वी.एस. बेहतर देने के लिए, यह सार्वजनिक कार्यों कि जनता के सदस्यों को मारा के लिए ही उपयोगी है, और निजी या विशेषाधिकार प्राप्त कार्यों के लिए IntelliSense सुधार करने के लिए इस्तेमाल नहीं किया जा सकता है। निजी कार्यों को आप शायद इंटेलिजेंस नहीं चाहते हैं, लेकिन आपको विशेषाधिकार प्राप्त होगा।

+0

अगर मैं गलत हूं तो मुझे सही करें, लेकिन वह पैटर्न निजी सदस्यों की अनुमति नहीं देता है। या यह करता है? यदि ऐसा है तो; क्या आप मुझे एक उदाहरण दे सकते हैं? – roosteronacid

+0

जावास्क्रिप्ट स्वयं वास्तव में निजी सदस्यों की अनुमति नहीं देता है। आप क्लोजर के माध्यम से सदस्य गोपनीयता का अनुकरण कर सकते हैं, जिसका मतलब है कि निजी सदस्यों को कन्स्ट्रक्टर में डालना, जिसका अर्थ है कि उन तक पहुंचने के लिए आवश्यक कार्यों को प्रोटोटाइप नहीं किया जा सकता है। तो संक्षिप्त जवाब "sortof" है। – Grank

+0

यही मैंने सोचा था। तो संक्षिप्त जवाब तब "नहीं" है? :) – roosteronacid

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