Maison  >  Article  >  interface Web  >  JavaScript implémente simplement les compétences d'espace de noms effect_javascript

JavaScript implémente simplement les compétences d'espace de noms effect_javascript

WBOY
WBOYoriginal
2016-05-16 16:56:551100parcourir

Javascript ne prend pas en charge nativement les espaces de noms et nécessite des solutions de contournement.

Lorsque nous créons une bibliothèque JavaScript, l'espace de noms est très important. Nous pouvons encapsuler les fichiers JavaScript dispersés (*.js) qui composent cette bibliothèque JavaScript dans l'espace de noms sans définir de fonctions ou de classes globales. Par exemple, Person, qui apparaît plusieurs fois dans ce chapitre, peut être encapsulé dans un espace de noms approprié dans le cadre de la bibliothèque :

Code 5-13 :

Copier le code Le code est le suivant :

var com = {};
com.anyjava = {};
com.anyjava.Person = function(name) {
//Membre privé
var _name = name;

//Accesseur
this.getName = function() {
return _name;
};
this.setName = function(name) {
_name = name;
};
};
//Prototype
com.anyjava.Person.prototype = {
eat:function() {
alert(this.getName() " mange quelque chose. ");
},
sleep:function() {
alert(this.getName() " dort.");
},
walk:function() {
alert(this.getName() " marche.");
}
};
var dirk = new com.anyjava.Person("Dirk");
dirk.eat () ;

À partir du code 5-13, nous obtenons un espace de noms plus conforme aux habitudes des développeurs Java, et lors de l'instanciation de l'objet Person, nous devons également spécifier notre chemin d'espace de commande.

Voici un petit conseil. Si vous utilisez une bibliothèque JavaScript développée par d'autres et avec une planification d'espace de noms relativement complète, vous pourriez être ennuyé d'écrire de longs espaces de noms à chaque fois. Par exemple, si vous utilisez la bibliothèque JavaScript que j'ai développée, sous l'espace de noms com.anyjava.control.ui, vous souhaitez utiliser de nombreux contrôles d'interface utilisateur étendus. Je suppose que vous ne voulez pas écrire var xxx = new com. plusieurs fois. En spécifiant des alias d'espace de noms, nous pouvons écrire du code moins répétitif, comme le montre le Code 5-14, une autre méthode d'instanciation de Personne dans le Code 5-13 :

Code 5-14 :

Copier le code Le code est le suivant :

var ns = com.anyjava;
var dirk = new ns.Person("Dirk");
dirk.eat();

La dernière chose que je L'explication suivante est la suivante : il y a un problème auquel vous devez prêter attention lors de l'utilisation des espaces de noms. Lors de l'écriture d'une bibliothèque JavaScript, dans la plupart des cas, les déclarations d'espace de noms peuvent apparaître à plusieurs emplacements dans un fichier JavaScript en même temps, ou dans plusieurs fichiers JavaScript. Cependant, une fonctionnalité du langage JavaScript est que la dernière variable déclarée écrasera la variable déclarée précédemment. .Les variables portant le même nom nous obligent à prêter attention au problème des déclarations répétées, c'est-à-dire que chaque fois que nous déclarons un objet espace de noms, il est recommandé de déterminer d'abord si l'objet espace de noms existe déjà, comme indiqué dans le code 5-. 15 :

Code 5-15 :

Copier le code Le code est le suivant :

if (typeof com.anyjava == "undefined") var com.anyjava = {};

De cette façon, nous pouvons nous assurer que l'objet "com.anyjava" est uniquement déclaré une fois.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn