如果我在关闭body标记之前调用我的JS脚本,那么使用jQuery ready函数(如$(myfunc());
与仅仅使用myfunc();
)之间是否有区别?
答案 0 :(得分:4)
只存在一个差异:
当您使用$(function(){...})
($(document).ready(function(){...})
的缩写时,您将自动将代码包装在匿名函数中,从而创建一个私有范围。在此范围内使用var
定义的变量不是没有泄露到全球范围。
<script>
$(function(){ //<-- Anonymous function wrapper
var test = 1; //"Private" variable
alert(test); //Alert: 1
});
alert(window.test); //Nothing
</script>
<body>
对战
<script>
var test = 1;
alert(test); //Alert: 1
alert(window.test); //Alert: 1
</script>
</body>
<小时/> 如果不将函数调用包装在包装器中,则两种方法都会产生类似的结果:
<script>
$(myfunc);
</script></body>
</bodY><script>
myfunc();
</script>