js闭包,很多时候用在外部获取一个函数内的局部变量。

js闭包,很多时候用在获取外部一个函数内的局部变量。
那为什么不将这个局部变量变为全局变量呢。这样更容易写更简单吧

4个回答

如果你经常使用某个变量A,那么你把它设为全局变量也没有问题。但是闭包是无处不在的,产生的局部变量很多,并且有些变量如for循环中的i变量等,你要把它们全部都弄成全局变量吗?到时候词法作用域的作用原理极可能会让你的代码出错。闭包真的很好用也不难的,建议题主耐心一点消化闭包,作用域和原型链的知识。闭包这个东西虽然听起来在奇怪,但是就是你经常随手用和写的那些东西

Sarahhoney12_
X白夏Y 说错了,i是全局变量
一年多之前 回复

一般尽量少建立全局变量(容易造成编码冲突),闭包提供访问和修改方法来实现对象封装

1、局部变量范围比全局变量小,作用域相对小,更加安全,每个函数只管自身变量,防止随便改值
2、都设为全局变量,易导致变量重名,使用混乱
3、局部变量与全局变量同名的情况下,局部变量屏蔽全局变量

避免污染全局作用域 这是常识==

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!