首页 新闻 搜索 专区 学院

一个javascript问题。帮帮忙

0
悬赏园豆:5 [已关闭问题]

 

如图,

此代码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>

<!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>

 

 

 

问题补充: 解决方法我知道,我能知道这样的原因么?
覃晓光的主页 覃晓光 | 初学一级 | 园豆:2
提问于:2010-04-18 16:57
< >
分享
其他回答(1)
0

你可以做一个测试 alert(window.btn_Onclick) 如果有内容说明this是window 没有的话说明是button

lorgine | 园豆:245 (菜鸟二级) | 2010-04-18 17:01
0

b2的onclick改成onclick="btn_Onclick(this);"吧

Gray Zhang | 园豆:17610 (专家六级) | 2010-04-19 07:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册