如图,
此代码b1点击后 this 为b1
b2点击后 this 为window
javascript高级编程里说:“关键字this总是指向调用该方法的对象”
请问这里为什么b2的点击对应的是window呢?
附代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title>
<script language="javascript" type="text/javascript">
function btn_Onclick() {
alert(this.value);
}
</script></head><body> <input type="button" onclick="btn_Onclick()" value="aaaaaa" id="b2" name="b2" /> <!-- 此时this为window -->
<input type="button" value="aaaaaa3333" id="b1" name="b1" /> <script language="javascript" type="text/javascript" > document.getElementById("b1").onclick = btn_Onclick; //此时this为控件 </script>
</body>
</html>
你可以做一个测试 alert(window.btn_Onclick) 如果有内容说明this是window 没有的话说明是button
b2的onclick改成onclick="btn_Onclick(this);"吧