//创建一个按钮window.onload=function(){varoBtn=document.getElementById('btn');//获取input对象oBtn.onclick=function(){//添加点击事件ff();};functionff(){alert('哈哈')}//定义函数ff};ff();//报错ffisnotdefined请问为什么oBtn在点击的时候,会弹出‘哈哈’?今天和同学遇到了这个问题,当时我们的困惑是:functionff(){alert('哈哈')},在window.onload中的代码执行完毕后,应该就不存在了吧?那么input点击的时候,还怎么能调用到ff这个函数?................................................................................................回家查了查,目前我的理解是因为作用域链:1.oBtn.onclick=function(){ff();}定义在window.onload函数里。2.当oBtn对象点击时,执行ff函数。3.oBtn对象本身(好像叫调用对象?犀牛书5版)没有ff函数,到其作用域链的下一个对象中查找,也就是到window.onload=function(){...}中查找。4.找到了functionff(){alert('哈哈');}5.因此oBtn点击的时候,弹出了‘哈哈’我的理解正确吗?如果有错请您帮我指出来,谢谢。
添加回答
举报
0/150
提交
取消