我們知道我們必須在回調中保留this
的值,以便在適當的上下文中執行它們。例如:這在不同類型的回調?
someArr.forEach(function(el) { console.log(this); });
這裏this
將參照窗口或不確定時,我們使用use strict
。
但是,當我們例如添加事件:
someBtn.addEventListener('click', function() {
console.log(this);
});
這裏this
指按鈕被按下。在這種回調中,我們不需要綁定任何這個,而在前一種情況下,我們必須明確地綁定它。 我可能是錯的,請澄清我的疑問。
在你的'click'回調函數中'this'與你在附加事件處理程序的上下文(即this'this && someBtn.addEventHandler')中的'this'不同。這是一個不同的'這個'。它正在改變。如果你綁定了它,事件處理程序中的'this'就不會引用這個按鈕。 – deceze