function a(){ alert(this); } var z=document.getElementById("z"); z.onclick=function(){ a(); } 结果会弹出 Window,谁能帮我比较清楚的解释一下这个原理,先谢谢啦。
认证高级PHP讲师
因为 a()是属于widow的 也就是 在你z.onclick中运行的是window.a();所以 a中的this 还是window
function a(){ alert(this); } var z=document.getElementById("z"); z.onclick=function(){ a();//相当于widow.a();window隐藏了而已 alert(this)//这个才是z }
这个就相当于你在页面中的"z" 加了一个onclick事件而已。
click后,其实并没有针对id=z的标签做任何事件,只是去触发alert(this), 而初始化中,a也只是附属于window,所以最后的结果是window.
因为 a()是属于widow的 也就是 在你z.onclick中运行的是window.a();
所以 a中的this 还是window
这个就相当于你在页面中的"z" 加了一个onclick事件而已。
click后,其实并没有针对id=z的标签做任何事件,只是去触发alert(this), 而初始化中,a也只是附属于window,所以最后的结果是window.