jquery中的 “ $ (function(){ })” 语句和原生JS中的 window.onload 类似,但两者也有些许的不同:
注:“ $ (function(){…})”是 $ (document).ready(function(){…})的简写形式,是在DOM加载完成后调用执行的回调函数,并且只会执行一次。
1.加载的阶段不同
- 原生JS会等到DOM元素加载完毕,并且图片也加载完毕再执行;
- jquery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行;
因此 $(function(){ }) 语句会先于 window.onload 执行
2.函数覆盖问题
- 原生js在编写多个入口函数时,后面编写的会覆盖前面编写的,系统只执行最后定义的 window.onload;
- 在jquery中编写了多个入口函数,后面编写的不会覆盖前面斌写的,编写多个入口函数,函数会依次全部执行;
3.实例
$(function () {
console.log("ready执行");
});
$(function() {
console.log("ready1执行");
});
window.onload = function () {
console.log('load执行');
};
window.onload = function () {
console.log('load1执行');
}
执行结果如下:
ready执行
ready1执行
load1执行