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

ajax回调函数的疑问

ajax回调函数的疑问

慕田峪9158850 2019-04-23 15:18:06
xmlhttprequest.onreadystatechange=myFunction;为什么不能写成xmlhttprequest.onreadystatechange=myFunction();具体一点,谢谢
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

xmlhttprequest.onreadystatechange=myFunction;
//把myFunction函数作为一个对象赋值给onreadystatechange.xmlhttprequest.onreadystatechange=myFunction()
//把myFunction函数的返回值赋值给onreadystatechange.如果它的返回值是个函数的话,当然可以这么用。
                            
查看完整回答
反对 回复 2019-04-23
?
慕沐林林

TA贡献2016条经验 获得超9个赞

使用myFunction()那么函数就立即执行并且返回值了,明显不符合我们的目的。我们的目的是为onreadystatechange事件注册一个处理函数,它在事件触发时执行。1.加了括号的表示调用,它会被执行。函数执行后返回值(可能为undefined)。
2.没有加括号的是函数的引用赋值,只是将一个函数当作变量赋值给xmlhttprequest.onreadystatechange,这时候函数没有被调用,也没有被执行,等待事件触发时再执行。JavaScript中的回调都是要使用函数引用,看代码更容易理解:varmyFunc=function(){/*code*/}
window.onload=myFunc;
//等同于:
window.onload=function(){/*code*/}
                            
查看完整回答
反对 回复 2019-04-23
  • 2 回答
  • 0 关注
  • 299 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信