Récemment, j'ai reconstruit les choses et rencontré les paramètres de l'espace de noms. J'ai cherché des connaissances, j'ai demandé à certains experts et rédigé mon expérience.
Je crois que tout le monde sait que la fenêtre est de premier ordre, donc je n'écrirai pas la fenêtre ici, donc je vais l'ignorer en premier
1: À propos du haut
La copie de code est la suivante: var ns = ns || {};
On peut voir que si vous constatez qu'il n'y a pas un tel objet, vous allez automatiquement créer un nouvel objet (); S'il y en a, vous utiliserez directement cet objet, afin qu'il ne soit pas écrasé.
2: Le deuxième niveau , bien sûr, vous pouvez également créer le deuxième niveau sous le NS de haut niveau, c'est-à-dire,
La copie de code est la suivante: ns.moduleclass = {};
Vous pouvez voir qu'une classe est créée sous NS, et bien sûr, vous pouvez continuer à créer les méthodes de la classe, c'est-à-dire: c'est:
La copie de code est la suivante: ns.moduleclass.method1 = function () {////};
3: Comment faire des multi-niveaux , tels que com.qw.view. Je veux le mettre dans un espace de noms. Cela nécessite de définir l'espace de noms pour chaque nom séparé de points et de le définir dans un objet.
Regardons un exemple et définissons-le sous la fenêtre:
La copie de code est la suivante:
Fonction Namespace (SSPACE) {
var arr = sspace.split ('.'), i = 0, namei;
var root = fenêtre;
for (; namei = arr [i ++];) {
if (! root [namei]) {
root [namei] = {};
}
root = root [namei];
}
retour de la racine;
}
Vous pouvez voir que c'est en effet ce que j'ai mentionné ci-dessus. J'ai utilisé une traversée pour définir toutes les séparations en objets, de sorte que chacun séparé peut être utilisé séparément.
4: Énumérez les conseils couramment utilisés , simples et rapides pour définir des espaces de noms
La copie de code est la suivante:
if (! window.ns) {
window.ns = {};
}
var ns;
if (typeof ns == "Undefined") {
ns = {};
}
if (typeof ns.classname == "Undefined") {
ns.classname = {};
}