Javascript匿名函数的作用之一:创建临时的命名空间,防止全局变量污染
2015-03-15 17:41
274 查看
如果你写了一段js模块的代码,这段代码将用在不同的程序中(对客户端Javascript来说通常是在各种各样的网页中)。假定这段代码定义了一个用以存储中间计算结果的变量,问题来了,这个变量可能会同其他代码中的全局变量发生冲突。解决的办法是将模块代码放入一个函数内部,然后立即调用这个函数。这样全局变量就变成了函数内部的局部变量:
这样还是太麻烦,可以直接定义一个匿名函数,并在单个表达式中调用它:
function() myModule(){ //模块代码,这个模块所用的所有变量都是局部变量,而不会污染全局命名空间 } myModule(); //立即调用这个函数
这样还是太麻烦,可以直接定义一个匿名函数,并在单个表达式中调用它:
(function(){ //myModule()重写为匿名函数的表达式 //模块代码 }()) //结束定义立即调用
相关文章推荐
- 变量的6种作用:全局作用域,文件作用域,命名空间作用域,类作用域,局部作用域,语句作用域
- Javascript 定义命名空间,减少全局变量污染
- 变量的6种作用域:全局作用域,文件作用域,命名空间作用域,类作用域,局部作用域,语句作用域
- JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
- extern 用法,在命名空间全局变量用到
- C++中 auto自己主动变量,命名空间,using作用以及作用域
- 防止js全局变量污染方法总结
- 防止js全局变量污染方法总结-待续
- 利用命名空间来防止变量名冲突――读《编写高质量代码》总结
- 理运用命名空间让js不产生冲突避免全局变量的泛滥
- 怎样让js不产生冲突,避免全局变量的泛滥,合理运用命名空间
- extern 用法,在命名空间全局变量用到
- Node.js 全局变量命名空间与命名空间中require模块的冲突
- 如何让js不产生冲突,避免全局变量的泛滥,合理运用命名空间
- 全局变量,extern和static以及命名空间的区别
- JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
- Node.js global 变量 (全局命名空间!)
- javascript 变量、作用域、命名空间、this
- 全局变量,extern和static以及命名空间的区别
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等