<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
function btnClick() {
alert(this.value);
}
window.onload = function () {
document.getElementById("btnTest").onclick = show;
}
function show(){
alert(this.value);
}
</script>
</head>
<body>
<input type="button" value="按钮1" onclick="btnClick()"/>
<input type="button" id="btnTest" value="按钮2" />
</body>
</html>
如果你点击如果点击按钮1,你会发现是结果underfine,因为this代表的意思发生事件的控件,这样写的话就等价于onclick=function(){btnClick();}这样就相当于调用btnClick这个方法了,这样如果想用this的话,就必须帮this当做参数传入并接收使用!
当你点击按钮2的时候你会发现可以使用this,因为这样等价于onclick=function(){alert(this.value);}
ps:this和event的语法定义是不一样的,this代表的是当前监听的事件的这个对象,而event代表的是引发事件的对象.
|