官方说,只有你业务用到到时候才会知道这个到底是个啥东西? 也即是用不到,了解也没有啥意思.--- 误人子弟了~
实际业务场景:
假设1:
传统的js是一个页面多个js去进行引入,假设现在三个人去合作开发一个页面。
第一个人:
定义了全局变量a = 100
第二个人:
并不知道a已经被定义 也定义了全局变量 a=200
第三个人:
同第二个人,a = 400
假设页面引入三个js,最后结果a是多少?
这里有答案吗?
真是的答案是:
js引入的先后顺序,决定a最终为哪个值.
在复杂点:
第一个人 自己写的js方法改变用到了这个值
第二个人 自己写的js方法改变用到了这个值
第三个人 自己写的js方法改变用到了这个值
那这个值到底是多少呢?
所有有了模块划分这个概念,每个模块有自己的函数和变量。
互不影响
假设需要多个都引用,则变成全局的变量和方法--------- 可以暂时理解为方法的封装
以上可以理解为扯淡--
实际感触在这里:
在外包手里接了一个项目,是传统的jquery开发,一个页面引入多个js文件。而且js文件引入的先后顺序坑了好多次~
后面增加业务需求。假设。这里新增了一个数据,或者改变了一个数据,需要在页面用到这个的地方进行全部体现.
这里是不是需要把这个暴露给全局. 结果可想而知,这是个多个人合作的项目.需求每天都在改.
再一个真是的js场景
a 文件 b文件 c文件
b文件暴露全局的 一个变量a = 100
a文件引入修改了这个值
c文件也引入了值。请问。a修改之后,c再次访问。访问到的是a修改后的值,还是一开始暴露的默认值呢?