關於addEventListener中事件函數的this指向問題


看代碼:

//定義一個可見的盒子用於綁定點擊事件
var box = document.getElementById('box');
box.x = 'box'

//設置執行函數的對象屬性
function outFunc() {
  this.x = 'outFunc';
  box.addEventListener('click', func, false);
}
outFunc();

function func() {
  console.log(this.x); //輸出box 說明該this指向的是調用addEventListener的對象
}

代碼2:

function outFunc() {
  this.x = 'outFunc';//給全局對象window.x賦值(相當於賦值全局變量)
  box.addEventListener('click', func.bind(this), false);
}
function func() {
  console.log(this.x); //輸出outFunc 使用bind設置this的值
}

總結,使用bind綁定的事件才是指向函數,否則指向的是調用addEventListener的對象。


免責聲明!

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



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