为了账号安全,请及时绑定邮箱和手机立即绑定

var 声明一个匿名函数init(),为什么会自己运行?把它写成function init(){} 就正常了

function myReady(fn){

//当代标准浏览器,DOMContentLoaded使用事件绑定addEventListener

if(document.addEventListener){

document.addEventListener("DOMContentLoaded", fn, false);

}else{

//IE低版本

contentLoaded(fn);

}

//IE 中模拟DOMContentLoaded

function contentLoaded(fn){

var d = window.document;

var done = false;

//只执行一次用户的回调函数;

   function init(){

if(!done){

done = true;

fn();

}

}

//为什么这样写,init函数会执行?

/*var init1 = function(){

if(!done){

done = true;

fn();

}

}*/

(function(){

try{

//dom树未创建完执行doScroll会抛出错误;

d.documentElement.doScroll("left");

}catch(e){

//延迟再执行一次,直到没有错误为止;

setTimeout(arguments.callee,50);

return;

}

//如果没有错误了就立马执行此函数

init();

})()

//监听document加载情况;

d.onreadystatechange = function(){

//如果用户是在domready之后绑定的函数,就立马执行;

if(d.readyState == "complete"){

d.onreadystatechange = null;

init();

}

}

}


}


正在回答

3 回答

没有执行啊  只是将function赋给init了  然后在其他地方调用啊  比如 init();

0 回复 有任何疑惑可以回复我~

2中函数定义方式都是可以的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var 声明一个匿名函数init(),为什么会自己运行?把它写成function init(){} 就正常了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信