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

时间:2023-08-12 20:30:09 

自执行函数:自动执行的函数。它在被解释时就已经在运行了。一般函数都是在被调用时才会执行的。
自执行函数的一般格式:(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");
}


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

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

标签:伪命名空间,封装法
0
投稿

猜你喜欢

  • 影响SQL Server性能的关键三个方面

    2009-02-13 16:59:00
  • 可爱动态背景输入框

    2009-05-07 13:50:00
  • DBA_2PC_PENDING 介绍

    2009-02-28 10:59:00
  • 页面中图像格式的选用之我见

    2007-10-31 18:11:00
  • 兼容IE,FF的弹出层登陆界面代码

    2008-01-04 12:13:00
  • Oracle数据库中的级联查询、级联删除、级联更新操作教程

    2023-06-25 19:01:42
  • 斜角滑动门导航条 DIV+CSS

    2008-07-19 15:45:00
  • MySQL数据库临时文件究竟储存在哪里

    2009-09-06 12:11:00
  • 浅谈Webpack多页应用HMR卡住问题

    2023-07-20 01:27:12
  • JS页内查找关键词的高亮显示

    2013-07-18 21:13:54
  • Python将string转换到float的实例方法

    2023-06-13 07:23:47
  • asp如何制作一个倒计时的程序?

    2010-06-29 21:25:00
  • .NET Core2.1如何获取自定义配置文件信息详解

    2023-07-17 16:26:34
  • SQL Server中处理空值时涉及的三问题

    2009-01-20 11:24:00
  • 如何用ASP.NET连接MS SQLServer数据库?

    2010-06-11 19:27:00
  • SQL Server 2005 FOR XML嵌套查询使用详解

    2009-01-06 11:20:00
  • ASP 隐藏下载地址及防盗链代码

    2011-02-26 11:17:00
  • python中使用xlrd、xlwt操作excel表格详解

    2023-06-25 03:59:51
  • xhtml+css VS div+css

    2008-04-07 13:00:00
  • 全局字体最佳实践

    2009-08-13 14:37:00
  • asp之家 网络编程 m.aspxhome.com