js this 和 event 的區別


今天在看javascript入門經典-事件一章中看到了 this 和 event 兩種傳參形式。因為作為一個初級的前端開發人員平時只用過 this傳參,so很想弄清楚,this和event的區別是什么,什么情況下用什么比較合適。

  onclick = changeImg(this)       vs     onclick = changeImg(event)

<img src='usa.gif' onclick="changeImg(event)" />
<script>
  var myImages = [
    'usa.gif','canada.gif','jamaica.gif','mexico.gif'
  ];
  function changeImg(e) {
    var el = e.target;
    var newImgNumber = Math.round(Math.round()*3);
    while(el.src.indexOf(myImages[newImgNumber]) != -1){
      el.src =myImages[newImgNumber];
    }
  }
</script>
  1. this是Javascript語言的一個關鍵字。 

  2. this代表函數運行時,自動生成的一個內部對象,只能在函數內部使用。

  3. this和event.target的區別:

    js中事件是會冒泡的,所以this是可以變化的,但event.target不會變化(在事件觸發時,只傳遞當前event對象的引用),它永遠是直接接受事件的目標DOM元素;

  另外,this和event.target都是dom對象,如果要使用jquey中的方法可以將他們轉換為jquery對象:$(this)和$(event.target);

  今天(2017/12/06)發現了更詳細的講解,有使用過程中的詳細介紹,需要的小伙伴們可以自行查看:jquery 關於event.target使用的幾點說明介紹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM