深入理解在JS中通过四种设置事件处理程序的方法
但是HTML标签属性注册处理程序就是一个例外。看下面四种方式:上面的代码是通过设置HTML标签属性为给button 添加了点击事件,当点击button 按钮时会弹出这个button的id,即btn1。它们被转换为能存取全局变量的顶级函数而非任何本地变量。由于历史的原因,它们运行在一个修改后的作用域链中。提供一个连接(这种方式现在已经不推荐使用。这段代码弹出来的是undefined。这就是说在事件处理程序内,this关键字指的是事件目标。当使用addEventListener()注册时,调用的处理程序使用事件目标作为它们的this值。但是对于还用attachment()注册的处理程序作为函数调用,它们的this值是全局对象。就是说的第四中方式在IE5-IE8 版本输出的是undefined。IE9以后的版本输出的btn3.。
用户评论