第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問一下,為啥不能用as[i],能解釋的詳細一點么,比較笨╰( 0ω0)ノ

window.onload= function () {
? ?var box=document.getElementById('divselect'),
? ? ? ?menu=box.getElementsByTagName('ul')[0];
? ? ? ?as=box.getElementsByTagName('a');
? ? ? ?title=box.getElementsByTagName('cite')[0],
? ? ? ?lis=box.getElementsByTagName('li');

? ?//點擊三角
? ?box.onclick= function () {
? ? ? ?menu.style.display = "block";
? ?};
? ?//遍歷as
? ?for (var i=0,l=as.length;l>i;i++) {
? ? ? ? as[i].onmouseover= function () {
? ? ? ? ? ? as[i].style.background = "#456";????這里為啥不能用as[i],非要用this,一直想不明白,請解釋的詳細一點,比較笨謝謝大神
? ? ? ?};
? ?}

};

正在回答

2 回答

這就好比雙色球搖獎的時候先出來的六個球,出來一個被人拿走一個,等六個球都拿完了你再想用只能去用第七個了。實際上這是js的垃圾回收機制在作怪,事件發(fā)生后變量使用完畢在內(nèi)存里立馬就會被銷毀,所以不會有剩下的,而使用this指代當前對象,你鼠標經(jīng)過的是哪個它對應的就是哪個

3 回復 有任何疑惑可以回復我~
#1

羋麗蘺 提問者

很好,謝謝這么詳細的講解了,大概也懂了
2017-06-01 回復 有任何疑惑可以回復我~

原理就是用as[i]具體的執(zhí)行結(jié)果就是每個? as[i].onmouseover后面的代碼都不會被執(zhí)行,只是輸出?function () {
? ? ? ? ? ? as[i].style.background = "#456" 這個函數(shù)語句,因為這個function構(gòu)成了一個閉包。

如果想要按照?as[i]這種寫法的可以?寫成 for (var i=0,l=as.length;l>i;i++) {
? ? ? ? as[i].onmouseover=(function () {
? ? ? ? ? ? as[i].style.background = "#456")();? 這樣后面的代碼會立即的執(zhí)行。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問一下,為啥不能用as[i],能解釋的詳細一點么,比較笨╰( 0ω0)ノ

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號