特別不明白這里的this是什么??為什么要這么用??
for(var i=0;i<oLis.length;i++){
? ? ? ? oLis[i].index=i;
? ? ? ? oLis[i].onclick=function(){
? ? ? ? ? for(var n=0;n<oLis.length;n++){
? ? ? ? ? ? ? oLis[n].className="";
? ? ? ? ? ? ? oDivs[n].className="hide";
? ? ? ? ? }
? ? ? ? ? this.className="on";
? ? ? ? ? oDivs[this.index].className="";
? ? ? ? }
? ? }
看到有人解釋為調用函數的對象,那這里調用函數的對象是oLis[i],為什么把this換成oLis[i]卻布恩那個正常顯示呢?
oDivs[this.index].className="";里面的this.index為什么不能直接寫成i呢??
2016-10-28
發生點擊事件的當前對象
2016-09-10
這里的 ? this.className="on";?oDivs[this.index].className=""跟這兩句都是在點擊事件的function()里面引發,而外面的for循環i的值在點擊事件的函數體里面是調用不到的,所以要在定義一個變量來存放i的值,然后當點擊事件產生的時候我們就可以調用到index的值也就是i的值,你可以試下在函數體里面alert(i);把i的值打印出來看下,你會發現都是-1,因為i根本就不在,這個我就忘記跟剛才那個人說了。
2016-09-09
就是當前這個調用對象
2016-09-09
for里面如果嵌套有函數,那么在那個函數里面的 i 實際上的值就等于 oLis.length?
所以,在那個函數里面oLis[i] 一直都是最后一個,這樣就得不到想要的結果了。
用this的話就能避免這個問題,因為this就是當前調用它的對象