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

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

關(guān)于this

在視頻中實(shí)現(xiàn)鏈?zhǔn)絼赢嫊r,仍然采用多物體的形式,于是有如下代碼:

oli[i].onmouseover=function(){

fnmove(this,'width',200,function(){

fnmove(this,'height',300);});}

發(fā)現(xiàn)這樣寫實(shí)現(xiàn)不了鏈?zhǔn)叫Ч?,而改成如下代碼則可以;

oli[i].onmouseover=function(){

var othis=this;

fnmove(othis,'width',200,function(){

fnmove(othis,'height',300);});}

所以,想請問this到底應(yīng)該怎么用?在我的錯誤的代碼中第二個this(即標(biāo)為斜體的this)指向什么?謝謝!

正在回答

1 回答

如果當(dāng)前執(zhí)行的是一個對象的方法,則執(zhí)行上下文就是這個方法所附屬的對象。

如果一個方法在執(zhí)行時沒有明確指定附屬對象,則這個方法的上下文為全局對象。

第一個this的對象是oli[i],但是第二個this并沒有明確指定附屬對象

就像下面的例子

2、用DOM方式在事件處理函數(shù)中使用this關(guān)鍵字

<div id="elmtDiv">division element</div> <script language="javascript"> var div = document.getElementById('elmtDiv'); div.attachEvent('onclick', EventHandler); function EventHandler() { ? ?// 在此使用this } </script>

這時的EventHandler()方法中的this關(guān)鍵字,指示的對象是IE的window對象。這是因?yàn)镋ventHandler只是一個普通的函數(shù),對于attachEvent后,腳本引擎對它的調(diào)用和div對象本身沒有任何的關(guān)系。同時你可以再看看EventHandler的caller屬性,它是等于null的。如果我們要在這個方法中獲得div對象引用,應(yīng)該使用:this.event.srcElement。?
3、用DHTML方式在事件處理函數(shù)中使用this關(guān)鍵字

?<div id="elmtDiv">division element</div> <script language="javascript"> var div = document.getElementById('elmtDiv'); div.onclick = function() { ? ?// 在此使用this }; </script>

這里的this關(guān)鍵字指示的內(nèi)容是div元素對象實(shí)例,在腳本中使用DHTML方式直接為div.onclick賦值一個EventHandler的方法,等于為div對象實(shí)例添加一個成員方法。這種方式和第一種方法的區(qū)別是,第一種方法是使用HTML方式,而這里是DHTML方式,后者腳本解析引擎不會再生成匿名方法。

有關(guān)this的用法,http://www.studyofnet.com/news/301.html

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕粉3498277 提問者

還沒完全看明白,之后慢慢消化。不過超級感謝你,碼這么多字,謝謝!
2016-07-18 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
JS動畫效果
  • 參與學(xué)習(xí)       113920    人
  • 解答問題       1489    個

通過本課程JS動畫的學(xué)習(xí),從簡單動畫開始,逐步深入各種動畫框架封裝

進(jìn)入課程

關(guān)于this

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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