為什么這里的this不能寫成as[i],這里的this到底是指什么
?for(var i=0;i<as.length;i++){
? ? ? ??
? ? ? ? as[i].onmouseover=function(){
? ? ? ? ? ? this.style.background="#ccc";
? ? ? ? }
? ? ? ? as[i].onmouseout=function(){
? ? ? ? ? ??
? ? ? ? ? ?this.style.background='none';
? ? ? ? ? ? }
? ? ? ? as[i].onclick=function(){
? ? ? ? ? ? title.innerHTML=this.innerHTML;
? ? ? ? }
? ? ? ??
? ? }
2016-04-22
?for(var i=0;i<as.length;i++){? ? ? ??
? ? ? ? as[i].onmouseover=function(){
? ? ? ? ? ? this.style.background="#ccc";
? ? ? ? }
}
如果? this.style.background="#ccc"; 寫成 as[i].style.background="#ccc";
最后as[0]~as[3]的元素的?onmouseover 函數(shù)會(huì)變成?
as[0].onmouseover=as[i].style.background="#ccc";
as[1].onmouseover=as[i].style.background="#ccc";
as[2].onmouseover=as[i].style.background="#ccc";
as[3].onmouseover=as[i].style.background="#ccc";
因?yàn)閕經(jīng)過for循環(huán)已經(jīng)計(jì)算得出是4.
所以上式可以寫成
as[0].onmouseover=as[4].style.background="#ccc";
as[1].onmouseover=as[4].style.background="#ccc";
as[2].onmouseover=as[4].style.background="#ccc";
as[3].onmouseover=as[4].style.background="#ccc";
顯然是不正確的, 如果寫成this
as[0].onmouseover=this.style.background="#ccc";
as[1].onmouseover=this.style.background="#ccc";
as[2].onmouseover=this.style.background="#ccc";
as[3].onmouseover=this.style.background="#ccc";
懂了吧~
2016-04-21
這段代碼是為了改變滑過導(dǎo)航條時(shí)顏色發(fā)生變化,但是為什么不是指向as[i]而是window
2016-04-20
這里的this指向的是window