博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 使用闭包防止变量污染
阅读量:6939 次
发布时间:2019-06-27

本文共 1326 字,大约阅读时间需要 4 分钟。

javaScript在多人协作时,如果定义过多的全局变量 有可能造成全局变量命名冲突,使用闭包来解决功能对变量的调用 将变量写到一个独立的空间里面 就是闭包里面

1       var name = "外部name"; 2         var init = (function(){ 3             var name = "内部name"; 4             function callName(){ 5                 console.log(name); 6                 //打印name 7             } 8             return function(){ 9                 callName();10                 //形成接口11             }12         }());13         init();

将最后一个函数return之后返回给init函数形成一个执行callName()函数的接口 开启callName()这个功能 这样做形成了一个闭包 闭包的变量私有化不会污染全局变量

执行init() 打印的name与外部的name互不影响

使用这种方式也有利于实现各种操作 不污染全局变量就可以把特定的功能写到一个闭包里面去 然后留出一个接口方便启用这个功能

var name = "GlobalName";                //全局变量        var init = (function(){            var name = "initName";            function callName(){                console.log(name);                //打印name            }            return function(){                callName();                //形成接口            }        }());        init();    // --> initName        var initSuper = (function(){            var name = "initSuperName";            function callName(){                console.log(name);                //打印name            }            return function(){                callName();                //形成接口            }        }());        initSuper(); // --> initSuperName

在执行init( )和initSuper( )时打印的name值互不影响

转载地址:http://xusnl.baihongyu.com/

你可能感兴趣的文章
大家好
查看>>
谈谈Ext JS的组件——布局的使用方法
查看>>
python入门书籍
查看>>
雷林鹏分享:CodeIgniter文件上传错误:the filetype you are attempting to upload is not allowed...
查看>>
Alpha冲刺随笔集
查看>>
js call
查看>>
centos6.2-64位快速部署hadoop-1.0.4.tar.gz 和 jdk-7u17-linux-x64.tar.gz
查看>>
004-关闭文件后自动备份
查看>>
js实现当前导航菜单高亮显示
查看>>
Linux常用命令(二)--文件目录命令
查看>>
tomcat启动报错
查看>>
由《旧制度与大革命》提取的5个感触
查看>>
sqlserver 分页
查看>>
php通过system()调用Linux命令问题
查看>>
swift 警告框 - 自定义按钮颜色,图片
查看>>
提高搜索引擎结果页面排名的各种技术
查看>>
刷题常用的STL容器总结
查看>>
创建一个支持ES6的Nodejs项目
查看>>
sqlserver 行转列、字符串行转列、自动生产行转列脚本
查看>>
仿微信表情输入
查看>>