Jquery ready()vs之前的简单函数调用

时间:2011-10-21 10:00:22

标签: javascript jquery

如果我在关闭body标记之前调用我的JS脚本,那么使用jQuery ready函数(如$(myfunc());与仅仅使用myfunc();)之间是否有区别?

1 个答案:

答案 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>