通过表单对象.onclick=函数,这种方式,函数内部this引用为表单对象,而通过表单对象.attachEvent("onclick",函数); 这种方式,函数内部this引用为window对象,script标签内的this也是window对象...
<html>
<head>
<script type="text/javascript">
window.onload = function(){
var mybutton = document.getElementById("mybutton");
mybutton.onclick = function(){
alert(this.id);//mybutton
}
mybutton.attachEvent("onclick",function(){
alert(this.id);//undefined
this.alert("我是window对象")//弹出 我是window对象
});
};
this.alert("我是window对象...");//弹出 我是window对象...
</script>
</head>
<body>
<button id="mybutton">按钮</button>
</body>
</html>
本文通过实例演示了在JavaScript中使用不同方式绑定事件时,事件处理函数内部this关键字的指向差异。具体比较了直接通过属性赋值与使用attachEvent方法绑定事件时this的不同表现。
94

被折叠的 条评论
为什么被折叠?



