El título de la variable en su ejemplo se declara como una variable global, por lo tanto, estará disponible para todos los scripts cargados en la misma página. Además, si ya hay una variable global denominada title
en la misma página, su valor se sobrescribirá cuando le asigne el valor “¡Hola, mundo!”
La práctica habitual para evitar este tipo de problema es declarar exactamente una variable global y luego colocar todas las demás variables dentro de ella. Por ejemplo:
var bobbyS_vars = {
título: “¡Hola mundo!”;
};
- Cómo comenzar a probar un servicio web RESTful usando Java
- ¿Cuál es la diferencia entre la forma de implementación de aplicaciones de Amazon OpsWorks en comparación con la forma de implementación de aplicaciones de Elasticbeanstalk?
- ¿Cómo modelo una base de datos donde cada objeto tiene votos?
- Cómo crear un sitio web como Eventbrite
- ¿Es posible aprender HTML y CSS primero para el diseño web, luego pasar a lenguajes de programación como Python, C ++, etc.?
Asigne a esa variable global solitaria un nombre que nadie más pueda elegir, como su nombre o el nombre de su empleador o, lo mejor de todo, un nombre de dominio que le pertenezca a usted o a su empleador.
Otra forma más común de manejar este problema es aprovechar la forma en que JavaScript maneja el alcance variable dentro de las funciones. Por ejemplo, cree una función anónima, declare todo su código dentro de esa función, luego llame a la función al final de la declaración poniendo () al final de la declaración. Por ejemplo:
(función () {
var title = “¡Hola mundo!”;
document.write (título);
}) ();
// el título no está aquí, así que no está definido,
// a menos que se haya declarado en otro lugar.
Si desea compartir algunas variables, pero no otras, haga que su función anónima use una combinación de enfoques:
var bobbyS_vars = {
título: “¡Hola mundo!”;
};
(función () {
var employeeId = “E 298”;
recuento var = 7;
document.write (“
” + bobbyS_vars.title + “
“);
document.write (“
” + employeeId + “
“);
}) ();
// En este punto, bobbyS_var.title está dentro del alcance y aún tiene el
// valor “¡Hola mundo!”. Las variables employeeId y count no son
// en alcance y efectivamente privado al código anterior.
Una nota final. Todas las funciones que declara su código también son efectivamente variables globales. Por lo tanto, si crea una función llamada printTitle, está 1) disponible para todos los demás códigos en la página y 2) podría sobrescribir o ser sobrescrita por otra función en la misma página también llamada printTitle. Puede proteger y / o exponer sus funciones de la misma manera que lo haría con cualquier otra variable:
var bobbyS_vars = {};
(función () {
// funciones privadas
función var = addOne (i) {
volver i + 1;
};
// vars públicos
bobbyS_vars.title: “¡Hola, mundo!”;
// Funciones públicas
bobbyS_vars.printTitle = function () {
document.write (“
” + bobbyS_vars.title + “
“);
document.write (“
” + addOne (41) + “
“);
};
}) ();
// En este punto, la función addOne no es directamente accesible,
// pero printTitle es.
bobbyS_vars.printTitle ();
Tenga en cuenta que aunque la función addOne es efectivamente una función privada dentro del cierre, todavía es accesible indirectamente, a través de la función printTitle porque addOne y printTitle están dentro del mismo alcance.