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 相关文章推荐
基于json的jquery地区联动效果代码
Jul 06 Javascript
Jquery颜色选择器ColorPicker实现代码
Nov 14 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
关于include标签导致js路径找不到的问题分析及解决
Jul 09 Javascript
js中function()使用方法
Dec 24 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 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
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
node.js中的path.extname方法使用说明
2014/12/09 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python实现简单的TCP代理服务器
2014/10/08 Python
python计算圆周率pi的方法
2015/07/11 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
恶意软件的定义
2014/11/12 面试题
主管职责范文
2013/11/09 职场文书
养殖项目策划书范文
2014/01/13 职场文书
保险专业求职信
2014/07/07 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
先进个人推荐材料
2014/12/29 职场文书
幼师个人总结范文
2015/02/28 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Python几种酷炫的进度条的方式
2022/04/11 Python
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js