关于Javascript作用域的问题

functiona(){
alert(this);
}
varz=document.getElementById("z");
z.onclick=function(){
a();
}
结果会弹出Window,谁能帮我比较清楚的解释一下这个原理,先谢谢啦。
墨色风雨
浏览 318回答 2
2回答

慕莱坞森

因为a()是属于widow的也就是在你z.onclick中运行的是window.a();所以a中的this还是windowfunctiona(){alert(this);}varz=document.getElementById("z");z.onclick=function(){a();//相当于widow.a();window隐藏了而已alert(this)//这个才是z}

紫衣仙女

这个就相当于你在页面中的"z"加了一个onclick事件而已。click后,其实并没有针对id=z的标签做任何事件,只是去触发alert(this),而初始化中,a也只是附属于window,所以最后的结果是window.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript