事件处理程序中 this 的指向

js 高程 事件处理程序 章节原话(斜体表示):

13.2.1 HTML事件处理程序

在这个函数内部,this 值等于事件的目标元素,例如:

<!-- 输出 "Click Me" -->
 <input type="button" value="Click Me" onclick="alert(this.value)">

13.2.2 DOM0 级事件处理程序

使用 DOM0 级方法指定的事件处理程序被认为是元素的方法。因此,这时候的事件处理程序是在元素的作用域中运行;换句话说,程序中的 this 引用当前元素。来看一个例子。

var btn = document.getElementById("myBtn");
    btn.onclick = function(){
    alert(this.id); //"myBtn"
 };

13.2.3 DOM2 级事件处理程序

与 DOM0 级方法一样,这里添加的事件处理程序也是在其依附的元素的作用域中运行。

var btn = document.getElementById("myBtn");
    btn.addEventListener("click", function(){
    alert(this.id);
}, false);

总结:事件绑定在哪个元素身上,this 就指向谁;(IE 的 attachEvent 注册的事件处理程序 this 是全局对象)

原文地址:https://www.cnblogs.com/xianshenglu/p/8043577.html