JavaScript中实现块作用域的方法
更新时间:2010年04月01日 17:45:25 作者:
在Javascript中由于没有作用域的概念,所以很容易发生标识符名称的冲突,尤其是在比较大的项目中,这类情况更容易发生
例如下面这段代码
{
var temp = "12";
}
alert(temp); //输出 12
如果按照通常的编程经验,那么alert函数是不可以访问到temp变量的,因为它在另外一个块中,但是在JavaScript中,却没有块作用域的概念,所以这种语法对JS不起作用,但是我们在写JS程序的时候,尤其是比较大的程序或是程序库,为了防止命名冲突,又需要一种控制变量作用域的机制,所以这里介绍一种比较普遍的方式,来实现块作用域的概念,代码如下:
(function() {
var temp = "123";
})();
alert(temp); //输出错误
如上面的代码,定义了一个函数表达式,然后马上调用它,这种形式模仿了块作用域的概念,保护了块内的命名空间,这种方式在一些比较大的程序库中很好用
(例如JQuery),有效的避免了命名冲突。事实上JQuery正是使用的这种方式来实现块作用域的。
复制代码 代码如下:
{
var temp = "12";
}
alert(temp); //输出 12
如果按照通常的编程经验,那么alert函数是不可以访问到temp变量的,因为它在另外一个块中,但是在JavaScript中,却没有块作用域的概念,所以这种语法对JS不起作用,但是我们在写JS程序的时候,尤其是比较大的程序或是程序库,为了防止命名冲突,又需要一种控制变量作用域的机制,所以这里介绍一种比较普遍的方式,来实现块作用域的概念,代码如下:
复制代码 代码如下:
(function() {
var temp = "123";
})();
alert(temp); //输出错误
如上面的代码,定义了一个函数表达式,然后马上调用它,这种形式模仿了块作用域的概念,保护了块内的命名空间,这种方式在一些比较大的程序库中很好用
(例如JQuery),有效的避免了命名冲突。事实上JQuery正是使用的这种方式来实现块作用域的。
您可能感兴趣的文章:
- JavaScript词法作用域与调用对象深入理解
- JavaScript中的作用域链和闭包
- javascript作用域容易记错的两个地方分析
- 深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
- 浅谈javascript中的作用域
- js变量以及其作用域详解
- js使用函数绑定技术改变事件处理程序的作用域
- javascript权威指南 学习笔记之变量作用域分享
- javascript中的作用域scope介绍
- 关于JavaScript中var声明变量作用域的推断
- JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
- Javascript 变量作用域 两个可能会被忽略的小特性
- Javascript学习笔记3 作用域
- JavaScript的变量作用域深入理解
- Javascript 作用域使用说明
- JavaScript 变量作用域及闭包
- javascript 变量作用域 代码分析
- javascript变量作用域使用中常见错误总结
相关文章
基于Flowplayer打造一款免费的WEB视频播放器附源码
Flowplayer是一款免费的WEB视频播放器。它支持播放flv、swf等流媒体和图片文件,能够非常流畅的播放视频文件,支持自定义配置和扩展。下面本篇文章给大家介绍基于Flowplayer打造一款免费的WEB视频播放器,需要的朋友可以参考下2015-09-09
最新评论