函数放到onload里面,在html里面执行函数会报错-----作用域和闭包相关问题
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>修改显示隐藏</title> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> <style> .center{width: 300px;height: 300px;border:1px solid #ccc;left:50%;margin-left: -150px;top:50%;margin-top: -150px;position: absolute;display: none;} </style> <script> /*window.onload=function(){*/ /*加了onload页面就会报错*/ function show(){ var oDiv=document.getElementById('box'); oDiv.style.display='block'; } function hide(){ var oDiv=document.getElementById('box'); oDiv.style.display='none'; } /*}*/ </script> </head> <body> <input type="button" value="弹出" onclick="show()"> <div class="center" id="box"> wefweofjpjfoiwe <input type="button" value="隐藏" onclick="hide()"> </div> </body> </html>
你是将里面的函数写成了onload事件的一个内函数。那么里面的函数就是一个闭包。在全局上是找不到这个函数的,click找不到里面的函数,怎么执行?
理解作用域和闭包。
衣带渐宽终不悔,为伊消得人憔悴,憔悴半天也没用,还是努力起来人富贵
posted on 2016-03-31 18:02 zhangjingyun 阅读(342) 评论(3) 编辑 收藏 举报