自执行函数:自动执行的函数。它在被解释时就已经在运行了。一般函数都是在被调用时才会执行的。
自执行函数的一般格式:(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");
}
上面的代码和自执行函数实现的功能其实是一样的。
比较之后,我们可以发现,第二方法更加的直观,易于理解。但是少了封装过程,代码完全裸露在外。
自执行函数的一般格式:(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");
}
上面的代码和自执行函数实现的功能其实是一样的。
比较之后,我们可以发现,第二方法更加的直观,易于理解。但是少了封装过程,代码完全裸露在外。
标签:
伪命名空间,封装法
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“javascript自执行函数之伪命名空间封装法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。