2009-06-13 8 views
3

Quelle est la bonne façon de documenter des objets de ce style dans jsdoc:balises appropriées pour les objets dans jsdoc

/** 

*/ 

var strings = 
{ 
    /** 

    */ 
    stripHTML: function(html) 
    { 
     //does something 
    }, 
    /** 

    */ 
    validHTML: function(html) 
    { 
     //does something else 
    } 
} 

A savoir le paramètre approprié pour définir l'objet, et de reconnaître les sous-fonctions dans le cadre de ' cordes ». Je connais @param, @return etc, je ne connais pas la définition principale de ce type d'objet.

Répondre

2

J'utiliser @namespace pour « cordes »

les méthodes seraient tout simplement utiliser @function (mais il est évident pour jsdoc ce qu'ils sont

Modifier Dans votre exemple particulier que vous pouvez utiliser quelque chose comme:

/** 
    describe purpose 
*/ 
String.prototype.stripHTML = function() 
{ 
    //does something with this 
} 

/** 
    describe purpose 
*/ 
String.prototype.validHTML = function() 
{ 
    //does something else with this 
} 

alors utilisé comme ceci:

var str = "bob<br/>"; 
str = str.stripHTML(); 
+0

Merci pour la réponse. Je connais les prototypes, mais merci pour le conseil. Le script que j'ai utilisé en tant que démo a des noms quelque peu trompeurs. –

+1

ahhh, d'accord. bien, pour les singletons qui fonctionnent comme un espace de noms, utilisez simplement @namespace. Cela peut être pénible quand vous avez des structures complexes, bien que –

+0

Y a-t-il un moyen de marquer la fonction, disons 'validHTML', de sorte qu'elle semble être une méthode ou liée à des 'chaînes'? En regardant la documentation générée, il n'y a aucun moyen de vraiment dire que c'est un membre de tels. –

2

Bien qu'il existe de bons arguments pour définir des fonctions de membre d'objet en définissant un prototype, parfois cela n'est pas pratique. Je pensais que je posterais une réponse qui ne remet pas en cause le code. Il utilise la même idée que la réponse de Jonathan.

/** 
* @namespace 
* Custom String functions 
*/ 
var strings = 
{ 
    /** 
    * Strips the HTML away 
    */ 
    stripHTML: function(html) 
    { 
     //does something 
    }, 

    /** 
    * Ensures the HTML is valid 
    */ 
    validHTML: function(html) 
    { 
     //does something else 
    } 
} 

L'exemple de: JSDoc-Toolkit était exactement ce que je recherchais.

Questions connexes