J'essaie de comprendre un code JavaScript tiers. Mais je ne suis pas capable de comprendre quelle est l'utilisation du style de codage ci-dessous.
A.generate(name);
3 Réponses :
On dirait qu'ils utilisent une fonction factice pour créer un espace de noms. p>
Vous avez raison; Ceci est inutile.
Ils doivent utiliser un objet normal à la place. P>
Merci, pour la réponse, je pensais sur les mêmes lignes. Mais savez-vous qu'il y aura une question de performance en utilisant ce style de codage. Je veux dire que c'est un moyen général de créer des espaces de noms. Je supposerais code code> var a = nouvelle fonction () {} ();
Code Code> Pour faire quelque chose comme ça, si je ne touche pas l'ensemble de la base de code?
La bonne façon de créer un espace de noms est d'utiliser un objet littéral: var a = {}; code>.
À moins qu'ils veulent soutenir les "instances" de cet objet, non? Fonction A () {} permet au var a = nouveau A (); code> modèle, je pense.
@Andrew: Mais ils ne font pas une classe.
@Slaks, que vous en donne spécifiquement sûr de cela?
@Andrew: Ils ne l'utilisent que comme espace de noms.
@Slaks: n'est-ce pas en supposant la conclusion? Comment savez-vous que c'est utilisé comme espace de noms sans plus de contexte?
Ils créent un espace de noms. Il existe de nombreuses façons de faire cela, et tous sont plus équivalents, moins ou moins: ou, équivalent: p> aussi, Si vous aimez être verbose: p> A = (function () {
var propValue = '23'; // class local variable
return {
"Prop" : propValue,
"generate" : function (n) {
// do something
}
};
})();
// then I can use A in the same way as before:
A.generate(name);
Eh bien, vous devriez lire ce livre pour plus de modèles professionnels addyosmani.com/resources/essentialjsdesignpatterns/book
Une fonction est un objet, il n'y a rien de tort intrinsèquement avec l'utilisation de la façon dont il a été utilisé. Cependant, étant donné que la fonction n'est pas réellement utilisée comme fonction, il serait préférable d'utiliser un objet. Vous pouvez également utiliser un tableau (qui est un objet), mais le même conseil s'applique. P>
En outre, les identificateurs commençant par une lettre majuscule sont, par convention, réservés aux constructeurs (à moins qu'ils ne soient toutes capitales, qui sont, par convention, pour les constantes), utilisez donc un nom à partir d'une lettre minuscule. P >