2008-09-24 3 views
5

Были ли у вас, парни и девушки, какие-нибудь подсказки или хаки, чтобы максимально использовать возможности JavaScript intellisense в Visual Studio 2008?JavaScript intellisense в Visual Studio 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"); 

Visual Studio показывает мне, что "пространство имен" и использует функции документирования (<param> и <summary>). Однако мне не удалось получить документацию по документации <return>.

Теперь все хорошо и хорошо. Но когда я делаю:

happyJulie.access("breasts"); 

Visual Studio не знает о функции access и я не получаю никаких документов на него.

Есть ли способ опубликовать общедоступные переменные и привилегированные функции для функциональности Intellisense Visual Studios, при этом создавая объекты с частными членами?

Да, используя весь car->wheels->tires надоедает в какой-то момент :)

+4

omg. happyJulie.access («грудь») - лучший пример. – 2008-09-24 18:15:28

+0

Хе-хе. Я надеюсь, что это никого не обидит :) – roosteronacid 2008-09-24 19:11:19

ответ

4

Javascript Intellisense, безусловно, слоеное, насколько признание пользователей функций. У меня было немного больше успеха, используя прототипную парадигму, так что это то, что вы могли проверить. Часто, однако, я считаю, что он все еще не будет надежно перечислять функции в Intellisense.
Редактировать: В качестве исходного плаката, предложенного в комментариях ниже, это не действительно возможно получить ту же «частную» функциональность в прототипе модели. Javascript не имеет понятия частных членов, но вы можете эмулировать конфиденциальность членов при закрытии, объявив их в конструкторе функций. Средство означает, что если у вас есть функции, которые нуждаются в доступе к элементам, они тоже должны быть в конструкторе, поэтому они не могут быть прототипами.
Таким образом, при использовании прототипа модель может (или не может) дать вам лучшую VS Intellisense, она полезна только для публичных функций, которые попадают в публичные элементы и не могут использоваться для улучшения intellisense для частных или привилегированных функций. Частные функции, вы, вероятно, не хотите intellisense в любом случае, но привилегированные вы, вероятно, будут.