2008-09-24 26 views
5

¿Han recibido consejos o hacks algunos chicos y chicas para sacar el máximo provecho de las opciones de intellisense de JavaScript en Visual Studio 2008?JavaScript intellisense en Visual Studio 2008

considerar lo siguiente:

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 me muestra los "espacios de nombres" y utiliza las funciones de documentación (<param> y <summary>). Sin embargo, no he podido obtener la función de documentación <return>.

Ahora, eso está muy bien. Pero cuando lo haga:

happyJulie.access("breasts"); 

Visual Studio no sabe acerca de la función access y consigo ninguna documentación sobre el mismo.

¿Hay alguna manera de exponer las variables públicas y las funciones privilegiadas a la funcionalidad intellisense de Visual Studios, mientras sigo creando objetos con miembros privados?

Sí, utilizando toda la car->wheels->tires pasa de moda en algún momento :)

+4

omg. happyJulie.access ("pechos") es el mejor ejemplo de todos. –

+0

Hehe. Espero que no ofenda a nadie :) – roosteronacid

+1

2 votos ofensivos hasta ahora. Y nos preguntamos por qué más mujeres no son programadoras .. suspiro. –

Respuesta

4

Javascript Intellisense es definitivamente escamosa por lo que el reconocimiento de los miembros de función. He tenido un poco más de éxito usando el prototipo de paradigma, así que eso es algo que puedes verificar. Muchas veces, sin embargo, me parece que todavía no enumerará de manera confiable las funciones en el Intellisense.
Editar: Como el cartel original sugerido en los comentarios a continuación, no es realmente posible obtener la misma funcionalidad "privada" en el modelo de prototipo. Javascript no tiene un concepto de miembros privados, pero puede emular la privacidad del miembro con el cierre al declararlos en el constructor de la función. Sin embargo, el medio es que si tienes funciones que necesitan acceder a los miembros, también tienen que estar en el constructor, por lo que no pueden ser prototipos.
Por lo tanto, al usar el modelo de prototipo puede (o no) proporcionarle mejor VS Intellisense, solo es útil para funciones públicas que afectan a miembros públicos y no se puede usar para mejorar intellisense para funciones privadas o privilegiadas. Las funciones privadas que probablemente no quieras intellisense de todos modos, pero con privilegios es probable que lo harías.

+0

Corrígeme si me equivoco, pero ese patrón no permite miembros privados. O lo hace? Si es así; ¿Podrías darme un ejemplo? – roosteronacid

+0

Javascript en sí mismo no permite miembros privados. Puede emular la privacidad del miembro a través del cierre, lo que significa poner miembros privados en el constructor, lo que significa que las funciones que necesitan acceder a ellos no pueden ser prototipos. Entonces la respuesta corta es "sortof". – Grank

+0

Eso es lo que pensé. ¿Entonces la respuesta corta es "no" entonces? :) – roosteronacid

Cuestiones relacionadas