DOM
試著在按鈕上綁定事件後看看 this 是誰?
1 2 3 4
| <button type="button" id="btn">送出</button>
<button type="button" onclick="console.log(this)">送出</button>
|
1 2 3 4
| var btn = document.getElementById('btn'); btn.addEventListener('click', function() { console.log(this); })
|
上述 this 會指向 DOM
搭配 bind()
如果希望 this 不是指向 DOM,而是由我們決定的話,可以使用 bind() 來賦予 this。
1 2 3 4 5 6 7 8 9
| var obj = { name: 'Ray' } var btn = document.getElementById('btn');
function fn() { console.log(this); } btn.addEventListener('click', fn.bind(obj));
|
參考資料
六角學院 - JavaScript 核心篇
JavaScript 核心觀念(43)-函式以及 This 的運作-this:DOM