1. 程式人生 > >js有關變量作用域的問題

js有關變量作用域的問題

一個 mouseover UNC seo 發現 func ole console 有關

上次,我在寫一份網頁過程中,發現在這樣一個函數中

for(var i=0;i<links.length;i++)
{
    links[i].onmouseover=function (){
      console.log(i);
  }
}

輸出i的值總是4(我前面有4個a標簽),一番折騰下來,好心人告訴我:

這是因為,onmouseover事件在for循環完後才使用(i溢出為全局變量了)

此時i已變為4了。

解決這個問題,可以用傳參數的方法。

for(var i=0;i<links.length;i++)
{
     links[i].index=i;
     links[i].onmouseover
=function (){ console.log(this.index); } }

js有關變量作用域的問題