<a href="#" onclick="doIt(this);>买</a>
与<a href="javascript: doIt(this);>买</a>
上面两个链接中 this关键字的指向区别在哪里?
我知道前一个this代表了整个<a href="#" onclick="doIt(this);>买</a> 对象,但后一个就不知道了

解决方案 »

  1.   

    从下面的例子看
    第一个this是指对象<a href="#" onclick="doIt(this);>买 </a>
    第二个是指document<a href="#" onclick="doIt(this);" title="2">买 </a> 
    与 <a href="javascript: doIt(this);" title="1">买 </a>
    <input name="bb" value="adfasfd">
    <script>
    function doIt(a)
    {
    alert(typeof(a).toString + "|" + a.toString());
    alert(a.bb.value)
    }
    </script>
      

  2.   

    [code]
    <a href="#" onclick="doIta(this);">买 </a> 
    与 
    <a href="javascript: doItb(this);">买 </a> 
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function doIta(o){
    o.innerHTML="doIta";
    }
    function doItb(o){
    o.location.href="http://www.baidu.com/";
    }
    //-->
    </SCRIPT>
    [/code]
      

  3.   

    <a href="#" onclick="doIta(this);">买 </a> 
    与 
    <a href="javascript: doItb(this);">买 </a> 
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function doIta(o){
    o.innerHTML="doIta";
    }
    function doItb(o){
    o.location.href="http://www.baidu.com/";
    }
    //-->
    </SCRIPT>
      

  4.   

    sorry ~ 我在 1 楼的回答是错误由于 javascript: 修饰的缘故doIt 的调用者 由 <a> 转变成了 window 这个对象所以后一个this 指向的是 window
      

  5.   

    window和document是有区别的吧?我感觉是document吧
      

  6.   


    <a href="#" onclick="doIta(this);">买 </a> 
    与 
    <a href="javascript: doItb(this);">买 </a> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    function doIta(o){ 
    o.innerHTML="doIta"; 

    function doItb(o){ 
    alert(o===window); //true
    alert(o===document) //false

    //--> 
    </SCRIPT>
      

  7.   

    javascript: 修饰的缘故 doIt 的调用者 由 <a> 转变成了 window 这个对象