极乐门资源网 Design By www.ioogu.com
但是从全局看来,这样会导致出现一些让我们难以掌控的情况的出现:变量同名、多个函数共用一个全局变量后的值的变换……等等。所以,有时候,对于一些简单的全局变量,我们可以通过另一种方式来处理——用自执行函数+闭包的方法来解:
比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示
下面的代码,实现了以上功能
复制代码 代码如下:
var msg1 = "欢迎光临!"; // 定义一个全局变量
var msg2 = "再见!" //定了另一个全局变量
window.onload = function() {
alert(msg1);
}
window.onunload = function() {
alert(msg2);
}
这段代码中已经用到了两个全局变量。而只是为了实现一个简小的功能。
而且,全局变量太多,我们必须记住:msg1是欢迎时的变量,msg2是关闭时变量……如果变量更多,我们还能记得住吗?
下面是同样的功能,不过运用了自执行函数+闭包方法:
复制代码 代码如下:
(function() {
var msg = "Hello, world!";
window.onload = function() {
alert(msg);
}
})();
(function() {
var msg = "Hello, world!";
window.onunload = function() {
alert(msg);
}
})();
后者做法,虽然代码增长了,但是:
1)msg变量只在各自的自执行函数内有效。不会和其它全局变量之间产生混淆。
2)代码的结构变得更加的清晰。
3)解决了大量使用全局变量的情况。
以上只是本人的一点认识,希望真正的高手给出点评!
比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示
下面的代码,实现了以上功能
复制代码 代码如下:
var msg1 = "欢迎光临!"; // 定义一个全局变量
var msg2 = "再见!" //定了另一个全局变量
window.onload = function() {
alert(msg1);
}
window.onunload = function() {
alert(msg2);
}
这段代码中已经用到了两个全局变量。而只是为了实现一个简小的功能。
而且,全局变量太多,我们必须记住:msg1是欢迎时的变量,msg2是关闭时变量……如果变量更多,我们还能记得住吗?
下面是同样的功能,不过运用了自执行函数+闭包方法:
复制代码 代码如下:
(function() {
var msg = "Hello, world!";
window.onload = function() {
alert(msg);
}
})();
(function() {
var msg = "Hello, world!";
window.onunload = function() {
alert(msg);
}
})();
后者做法,虽然代码增长了,但是:
1)msg变量只在各自的自执行函数内有效。不会和其它全局变量之间产生混淆。
2)代码的结构变得更加的清晰。
3)解决了大量使用全局变量的情况。
以上只是本人的一点认识,希望真正的高手给出点评!
标签:
闭包,自执行函数
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无javascript中运用闭包和自执行函数解决大量的全局变量问题的评论...
更新日志
2025年01月22日
2025年01月22日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]