JavaScript中实现块作用域的方法


Posted in Javascript onApril 01, 2010

例如下面这段代码

{ 
var temp = "12"; 
} 
alert(temp); //输出 12

如果按照通常的编程经验,那么alert函数是不可以访问到temp变量的,因为它在另外一个块中,但是在JavaScript中,却没有块作用域的概念,所以这种语法对JS不起作用,但是我们在写JS程序的时候,尤其是比较大的程序或是程序库,为了防止命名冲突,又需要一种控制变量作用域的机制,所以这里介绍一种比较普遍的方式,来实现块作用域的概念,代码如下:

(function() { 
var temp = "123"; 
})(); 
alert(temp);//输出错误

如上面的代码,定义了一个函数表达式,然后马上调用它,这种形式模仿了块作用域的概念,保护了块内的命名空间,这种方式在一些比较大的程序库中很好用
(例如JQuery),有效的避免了命名冲突。事实上JQuery正是使用的这种方式来实现块作用域的。

Javascript 相关文章推荐
理解JavaScript的prototype属性
Feb 11 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
深入理解JS的事件绑定、事件流模型
May 13 Javascript
详解vue中使用微信jssdk
Apr 19 Javascript
express中static中间件的具体使用方法
Oct 17 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 #Javascript
js 异步处理进度条
Apr 01 #Javascript
JavaScript中String和StringBuffer的速度之争
Apr 01 #Javascript
Cookie 小记
Apr 01 #Javascript
javascript操作cookie的文章(设置,删除cookies)
Apr 01 #Javascript
在模板页面的js使用办法
Apr 01 #Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 #Javascript
You might like
PHP的加密方式及原理
2012/06/14 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
教你php如何实现验证码
2016/01/20 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
js confirm()方法的使用方法实例
2013/07/13 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
解析Python中的二进制位运算符
2015/05/13 Python
游戏商店:Eneba
2020/04/25 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
先进党支部事迹材料
2014/01/13 职场文书
幼师求职自荐信
2014/05/31 职场文书
学校运动会霸气口号
2014/06/07 职场文书
2016公司新年问候语
2015/11/11 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫