javascript - function(window, document)这种写法有什么意义吗
PHP中文网
PHP中文网 2017-04-11 10:15:41
[JavaScript讨论组]
(function(window, document) {
    //todo something
})(window, document);

看到好多人这么写,有什么意义么?
window,document作为全局的变量有必要传参数到立即执行的匿名函数内部么?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
PHP中文网

一:代码压缩时window,document参数可以写成w,d之类,如果访问到全局变量则不能压缩
二:性能优化,把全局变量传入函数,在函数内就有了window和docment的局部变量,每次访问在函数内可以找到,就不用再去全局找

PHP中文网

js压缩的时候有点用处

迷茫

关于内存方面,
全局变量是在内存中开辟一块内存,直到你关闭这个页面,才会销毁。
局部变量当你执行完函数,并且不再使用的时候,就会销毁。

对就赞,错就改

PHPz

(function(window,doc) {

// doc == document
doc.xxx

})(window,document);
可以理解了吗?

里面是局部变量,外部是全局变量。
好处是与其他代码混合的时候不会混淆全局变量。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号