Recientemente, reconstruí cosas y encontré la configuración del espacio de nombres. Busqué algunos conocimientos, pregunté a algunos expertos y escribí mi experiencia.
Creo que todos saben que la ventana es de primera categoría, así que no escribiré la ventana aquí, así que lo ignoraré primero
1: sobre la parte superior
La copia del código es la siguiente: var ns = ns || {};
Se puede ver que si encuentra que no hay tal objeto, automáticamente creará un nuevo objeto (); Si lo hay, usará este objeto directamente, para que no se sobrescribirá.
2: El segundo nivel , por supuesto, también puede crear el segundo nivel bajo el nivel superior NS, es decir,
La copia del código es la siguiente: ns.moduleclass = {};
Puede ver que una clase se crea bajo NS y, por supuesto, puede continuar creando los métodos de la clase, es decir, esto es:
La copia del código es la siguiente: ns.moduleclass.method1 = function () {////};
3: Cómo hacer niveles múltiples , como com.qw.view. Quiero configurarlo en un espacio de nombres. Esto requiere establecer el espacio de nombres para cada nombre separado por el punto y configurarlo en un objeto.
Veamos un ejemplo y colóquelo debajo de la ventana:
La copia del código es la siguiente:
espacio de nombres de funciones (sspace) {
var arr = sspace.split ('.'), i = 0, namei;
var raíz = ventana;
for (; namei = arr [i ++];) {
if (! root [namei]) {
root [namei] = {};
}
root = root [namei];
}
raíz de retorno;
}
Puedes ver que es de hecho lo que mencioné anteriormente. Utilicé un recorrido para configurar todos los separados en objetos, de modo que cada uno separado se pueda usar por separado.
4: Enumere los consejos utilizados , simples y rápidos para configurar espacios de nombres
La copia del código es la siguiente:
if (! Window.ns) {
Window.ns = {};
}
var ns;
if (typeof ns == "indefinido") {
ns = {};
}
if (typeof ns.classname == "indefinido") {
Ns.ClassName = {};
}