当我第一次学习JavaScript时,我习惯于在页面加载的时候包装我想要执行的任何脚本,如下所示:
$(function() {
//code
});
Run Code Online (Sandbox Code Playgroud)
从那时起我学到了更多,我的印象是我可以轻松地抛出jQuery并写下:
(function(){
//code
})();
Run Code Online (Sandbox Code Playgroud)
这两种方法在最终结果中是否相同?是一个更好的?我完全弄错了其中一个或两个?"执行文档就绪"的标准最佳实践是什么?
他们根本不是一回事.第一个是document.ready事件,通常如下所示:
$(document).ready(fn);
Run Code Online (Sandbox Code Playgroud)
但jQuery允许您使用快捷方式:
$(fn);
Run Code Online (Sandbox Code Playgroud)
第二个代码是IIFE(立即调用函数表达式),它所做的只是创建一个闭包,因此您不会将变量暴露给全局范围,然后立即执行.
使用jQuery时,将所有代码放在ready事件中是一种很好的做法,顺便说一下,你也创建了一个闭包,所以那里的所有东西都是"私有的".但是,如果在结束body标记之前添加代码,则不需要ready事件.您可以根据需要使用尽可能多的IIFE,但通常只使用一个就绪事件,因为事件只运行一次.
总之,document.ready事件发生时触发.IIFE允许您封装代码.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |