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 核心参考教程 内置对象
Oct 13 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
jQuery ajax调用webservice注意事项
Oct 08 jQuery
Angular搜索场景中使用rxjs的操作符处理思路
May 30 Javascript
自定义Vue组件打包、发布到npm及使用教程
May 22 Javascript
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
layui 弹出层值回传解决方式
Nov 14 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 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获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
js tab效果的实现代码
2009/12/26 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
javascript常用的设计模式
2017/02/09 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
VUE长按事件需求详解
2017/10/18 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
python实现文本界面网络聊天室
2018/12/12 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Python itertools.product方法代码实例
2020/03/27 Python
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
大学生职业生涯规划书范文
2014/01/14 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
小学生环保标语
2014/06/13 职场文书
妈妈别哭观后感
2015/06/08 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
导游词之吉林花园山
2019/10/17 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
MySQL为id选择合适的数据类型
2021/06/07 MySQL
MySQL创建管理子分区
2022/04/13 MySQL