javascript自执行函数之伪命名空间封装法


Posted in Javascript onDecember 25, 2010

自执行函数:自动执行的函数。它在被解释时就已经在运行了。一般函数都是在被调用时才会执行的。
自执行函数的一般格式:(function() { 函数体 })();
而且,自执行函数中一般都会有一个function() {}形式的匿名函数。

下面的代码在window对象中创建一个命名空间 mySpace,并把自执行函数中的方法封装在mySpace命名空间之下,以便于我们调用这个自执行函数中的一些功能。

(function() { 
//根据id获取对象 
function $(id) { return document.getElementById(id); } //内部函数,在外层是不可以调用的 
function _setStyle(id, styleName, styleValue) { 
$(id).style[styleName] = styleValue; 
} 
//创建伪命名空间 
window.mySpace = {}; 
//将内部函数_setStyle封装在mySpace命名空间内 
//调用时,使用window.mySpace.setStyle(id, styleName, styleValue) 
window.mySpace.setStyle = _setStyle; 
})(); 
//下面是测试代码 
window.onload = function() { 
//将id为test的对象的文字颜色设置为红色 
window.mySpace.setStyle("test", "color", "#f00"); 
}

那么这种封装方式到底有何好处呢?

当然就是保护了自执行函数内的方法、变量、属性等。这样代码更加安全了。

如果不使用这种方法,那么,下面的方法也可以实现的。

window.mySpace = {}; 
window.mySpace.$ = function(id) { return document.getElementById(id); } 
window.mySpace.setStyle = function(id, styleName, styleValue) { 
window.mySpace.$("test").style[styleName] = styleValue; 
} 
//下面是测试代码 
window.onload = function() { 
window.mySpace.setStyle("test", "backgroundColor", "#f00"); 
window.mySpace.setStyle("test", "color", "#fff"); 
}

上面的代码和自执行函数实现的功能其实是一样的。

比较之后,我们可以发现,第二方法更加的直观,易于理解。但是少了封装过程,代码完全裸露在外。

Javascript 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
Feb 23 Javascript
node.js中的fs.readdir方法使用说明
Dec 17 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
JSON 数据详解及实例代码分析
Jan 20 Javascript
canvas雪花效果核心代码分享
Feb 19 Javascript
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
jQuery实现高级检索功能
May 28 jQuery
js实现滑动滑块验证登录
Jul 24 Javascript
Ext对基本类型的扩展 ext,extjs,format
Dec 25 #Javascript
JQuery live函数
Dec 24 #Javascript
jquery 单击li防止重复加载的实现代码
Dec 24 #Javascript
基于jquery的关于动态创建DOM元素的问题
Dec 24 #Javascript
在JavaScript中获取请求的URL参数
Dec 22 #Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 #Javascript
jQuery Clone Bug解决代码
Dec 22 #Javascript
You might like
一个捕获函数输出的函数
2007/02/14 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
对比分析json及XML
2014/11/28 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python简易远程控制单线程版
2018/06/20 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python中turtle库的使用实例
2019/09/09 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
最新的咖啡店创业计划书
2013/12/30 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫