为什么要使用闭包?不使用全局变量?

我看都说的是怕【污染】全局变量。可VueX不也是声明了一大堆的全局变量吗,这个时候为什么就不怕了?

阅读 2.9k
2 个回答
  1. 在不考虑什么打包依赖的情况下,vuex只在全局声明一个变量就是那就是vuex或称为window.vuex
  2. 如果你们公司很多人开发, a工程师全局用了一个变量,那么是不是其他工程师也有使用重复命名变量的风险呢?然后报错了,还要浪费时间去找问题, 最后a工程师可能还要挨一顿喷。

很多东西并不是绝对怎么样的,主要是怕别人(特别是初学者)在不懂的情况下乱用而已.
在初学者阶段,我们可以值遵守这些规范,而如果要精通,就需要懂为什么这样.
只有懂得为什么,才会知道什么时候该用,什么时候不该用.

比如全局变量.坏处是全局变量会有冲突,而且容易被修改导致错误,不是非必要的情况下,用局部变量更加合适而已.好处就是可以在所有作用域都能用得到.当你了解全局变量好处和坏处之后,在用的时候,你就会斟酌,是不是非要用,有没有可替代方案,如果非要用的话,怎么去避免不好的地方,以及被破坏后的补救措施.比如团队内部的约定来保证全局变量不会被覆盖和修改,用测试来保证运行的过程中没有被破坏之类的.

比如加不加分号,刚开始都让加分号,是因为如果不加分号会导致有些情况会出错,比如下一行是 [ ( + - / 之类符号开头的时候,究其根本是ASI机制在作怪,明白了原理,那就可以根据需要决定加不加了.比如公司规定要加那就加,规定不加就不加了.

所以没有那么绝对,只是看你懂不懂为什么而已,懂了该用就用,不该用就不用了,不懂的那就去学到懂吧.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题