【概念】js闭包之块级作用域
2016-05-06 17:40
513 查看
优质文章分享:http://lvtraveler.github.io/
在js中我们应该尽量避免使用全局变量和全局函数,以防止发生命名冲突,那么要如何避免呢?js中有一个闭包的概念,现在我们使用闭包中块级作用域来讲解,这也是闭包中最重要的概念。
js本身是不支持像C/C#/java…这样的语言中有块级作用域的,即在语法块中定义的变量,在语法块外面是无法访问到的。
那么,js要怎么去模拟像C这样的块级作用域呢?我们先来看一个栗子:
例如:
在函数内部创建一个匿名函数,就相当于在函数内部创建了一个私有作用域,这对于在较大/多人开发的项目中是很好用的,这样每个程序员能在自己的功能函数中使用自己的变量不至于混乱、冲突。
在js中我们应该尽量避免使用全局变量和全局函数,以防止发生命名冲突,那么要如何避免呢?js中有一个闭包的概念,现在我们使用闭包中块级作用域来讲解,这也是闭包中最重要的概念。
js本身是不支持像C/C#/java…这样的语言中有块级作用域的,即在语法块中定义的变量,在语法块外面是无法访问到的。
那么,js要怎么去模拟像C这样的块级作用域呢?我们先来看一个栗子:
例如:
test(); function test() { (function(){ for(var i=0;i<3;i++){ console.log(i);//这个时候i就在**匿名函数里**面有效了,在**匿名函数外**无效,在匿名函数外,i就被销毁了 } })(); console.log(i);//输出:undefined }
在函数内部创建一个匿名函数,就相当于在函数内部创建了一个私有作用域,这对于在较大/多人开发的项目中是很好用的,这样每个程序员能在自己的功能函数中使用自己的变量不至于混乱、冲突。
相关文章推荐
- js中json与string相互转换
- JavaScript(一)
- getJSON 2 取值
- $.getJSON 和 $.each 的用法
- js 分页
- Gulp.js简介
- JS文件传值问题
- js判断元素是否隐藏的方法
- JavaScript最佳实践:性能 自己留存
- 移动web js触屏事件 按下 松开 滑动
- js判断变量是否为空或者。。。
- 10、JavaScript利用正则去除前后空格
- JavaScript数组方法总结分析
- js闭包-简介
- JS平滑无缝滚动效果的实现代码
- JS中可以获取session
- 【分享/转】用js写一个模板引擎
- 字符串js编码转换成实体html编码的方法(防范XSS攻击)
- d3.js——partition函数的参数
- JavaScript 基础(一)