Jquery ready()与</body>之前的简单函数调用

Jquery ready() vs simple function call before </body>

本文关键字:函数调用 简单 body ready Jquery      更新时间:2023-09-26

如果我在结束正文标签之前调用我的JS脚本,使用像$(myfunc());这样的jQuery就绪函数与仅仅使用myfunc();有区别吗?

只有一个区别:

当您使用$(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>