ホームページ  >  に質問  >  本文

关于Javascript作用域的问题

 function a(){
       alert(this);
 }

  var z=document.getElementById("z");

  z.onclick=function(){
      a();
  }
  
  结果会弹出 Window,谁能帮我比较清楚的解释一下这个原理,先谢谢啦。
PHP中文网PHP中文网2749日前259

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-04-10 15:42:56

    因为 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
      }

    返事
    0
  • 迷茫

    迷茫2017-04-10 15:42:56

    这个就相当于你在页面中的"z" 加了一个onclick事件而已。

    click后,其实并没有针对id=z的标签做任何事件,只是去触发alert(this), 而初始化中,a也只是附属于window,所以最后的结果是window.

    返事
    0
  • キャンセル返事