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 相关文章推荐
javascript实现数字验证码的简单实例
Feb 10 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
JavaScript缓冲运动实现方法(2则示例)
Jan 08 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
Vue.js学习之过滤器详解
Jan 22 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
vue不通过路由直接获取url中参数的方法示例
Aug 24 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
微信小程序列表中item左滑删除功能
Nov 07 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
原生js实现放大镜
2017/02/20 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
JS实现打字游戏
2019/12/17 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python装饰器基础详解
2016/03/09 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
路政管理专业推荐信
2013/11/11 职场文书
环保建议书400字
2014/05/14 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书