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

调用init函数不理解

只执行一次用户的回调函数init()这一点不理解,

如下是老师的代码:

var init=function(){

   if(!done){

    done=true;

fn();

   }

 };

如果我把老师的代码改为如下:

var init=fn();

好像也不可能会出现fn()函数调用两次的情况对吗?会的朋友指教一下(求详细一点)谢谢谢谢


正在回答

2 回答

var init = fn();由于回调函数fn没有返回值,那么init存储的值为undefined;我想你的本意是想将init指向fn所指向的函数对象,然后在后面直接调用init(),对吧?如果是这样,那么对于onreadystatechange事件的处理程序和其前面()()结构中的语句会造成两次调用回调函数fn,而有了done条件判断,只要init调用一次,再次调用init就会失效,从而保证只调用一次回调函数fn。

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

海贼王2015 提问者

嗯嗯,谢谢你的回答,谢谢
2015-10-19 回复 有任何疑惑可以回复我~

init=fn();
是把fn的执行的返回值给了init,如果这样,就调用多次fn()了。
结果成了调用fn()(),仔细看看,是不是这样。

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

举报

0/150
提交
取消

调用init函数不理解

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