实际上,这些全局变量削弱了程序的灵活性,应该避免使用全局变量。努力减少使用全局变量的方法:在应用程序中创建唯一一个全局变量,并定义该变量为当前应用的容器。
- var My = {};
- My.name = {
- "first-name" : " first ",
- "last-name" : " last "
- };
- My.work = {
- number : 123,
- one : {
- name : " one ",
- time : "2012-9-14 12:55",
- city : "beijing"
- },
- two : {
- name : "two",
- time : "2012-9-12 12:42",
- city : "shanghai"
- }
- };
只要把多个全局变量都追加在一个名称空间下,将显著降低与其他应用程序产生冲突的概率,应用程序也会变得更容易阅读,因为My.work指向的是顶层结构。当然也可以使用闭包体将信息隐藏,它是另一种有效减少“全局污染”的方法。
关于全局变量的处理方法,《JS权威指南》一书中也有相应的描述,
-----------------------》
但是,这种方法只能减少名字冲突,并不能彻底避免,因为很有可能在两个不同的JS文件中,
都有名字为Class的命名空间。所以,我们又想出用JS的文件名字来定义一个命名空间,这样
大大减少了冲突的概率。在同一个目录下不能有两个重复的文件,所以这样子的方法更加
合理。但是,这样子貌似还是不能彻底消除,所以我们向JAVA语言学习,类似于
com.**.**.class 的命名方式,对大家来说并不陌生,所以我们也可以用同样的方法来实现。
出自《JS权威指南》的一个例子
转载于:https://blog.51cto.com/6221123/1105885