avascript中的自执行匿名函数应用示例


Posted in Javascript onSeptember 15, 2014

Javascript中的自执行匿名函数
格式:

(function(){ 
//代码 
})();

解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。
来个带参数的例子:

(function(arg){ 
alert(arg+100); 
})(20); 
// 这个例子返回120。

重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许

(function(){ 
function $(id){ 
return document.getElementById(id); 
} 
function __addClass(id,className,classValue){ 
$(id).style.className=classValue; 
} 
window['mySpace']={}; 
window['mySpace']['addClass']=__addClass; 
})();

上面的例子就可以用这种伪命名空间封装并保护自己的所有函数、对象和变量。而且,由于它们位于同一个函数中,所以可以互相引用。为了对受保护的代码进行全局化,随后的一对括号告诉浏览器立即执行返回的匿名函数,而且在执行期间将__addClass()赋值给了window的一个方法,这样在外部只能执行addClass而__addClass被保护起来了。我可以这样调用它:mySpace.addClass('oneId','font-width','bold')

Javascript 相关文章推荐
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
jQuery插件分享之分页插件jqPagination
Jun 06 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 Javascript
小程序实现列表删除功能
Oct 30 Javascript
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
记一次vue去除#问题处理经过小结
Jan 24 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 #Javascript
css与javascript跨浏览器兼容性总结
Sep 15 #Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 #Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 #Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 #Javascript
javascript使用数组的push方法完成快速排序
Sep 15 #Javascript
一款由jquery实现的整屏切换特效
Sep 15 #Javascript
You might like
BBS(php & mysql)完整版(五)
2006/10/09 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
vue实现局部刷新的实现示例
2019/04/16 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python2包含中文报错的解决方法
2018/07/09 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python基础教程之while循环
2019/08/14 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
pandas数据处理进阶详解
2019/10/11 Python
Python如何省略括号方法详解
2020/03/21 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Django静态文件加载失败解决方案
2020/08/26 Python
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
大三毕业自我鉴定
2014/01/15 职场文书
保密普查工作实施方案
2014/02/25 职场文书
小学生手册家长评语
2014/04/16 职场文书
教师教学评估方案
2014/05/09 职场文书
物业接待员岗位职责
2015/04/15 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers