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