js 中 this 是相对的比如说
<input id="sr1" type="text" onclick="alert(this.id)"/>
<input id="sr2" type="text" onclick="alert(this.id)"/>html 中 记住"万物皆对象"的概念   每一个角标 每一个方法 都是对象  
this 在哪个对象中使用 就是谁   在比如说
function aa(){
   this.name="ok";
}alert(new aa().name)上面 的this 就代表aa  

解决方案 »

  1.   

    老兄: onclick 该成doclick,onclick调用onclick 有堆栈错误啊
    <html>
    <script language="javascript">
    var dudu=new function(){
        this.name='L';
        this.grunt=function(){
          alert('grunt:'+this.name);
        }
        this.onerr=function(){
          alert('error:'+this.name);
        }
    }
    function  onclick()
    {
     
        dudu.grunt();
    }
    window.onerror=dudu.onerr;
    </script>
    <body>
    <input type="text" onClick="onclick();"/>
    </body>
    </html>
      

  2.   

    <html>
    <script language="javascript">
    var dudu=new function(){
        this.name='L';
        this.grunt=function(){
          alert('grunt:'+this.name);
        }
        this.onerr=function(){
          alert('error:'+this.name);
        }
    }
    function  doclick()
    {
     
        dudu.grunt();
    }
    window.onerror=dudu.onerr;
    </script>
    <body>
    <input type="text" onClick="doclick();"/>
    </body>
    </html>
      

  3.   

    修改:  this.grunt=function(){
          alert('grunt:'+dudu.name);
        };
    this.onerr=function  (){
          alert('error:'+dudu.name);
        }
    }
    在函数里面用this,this代表着当前函数对象
      

  4.   

    这样定义对象就可以了<script language="javascript">
    var dudu={
     "name":'L',
      "grunt":function(){
          alert('grunt:'+this.name);
        },
    "onerr":function (){
          alert('error:'+this.name);
        }
    }
    function onclick1(){
        dudu.grunt();
    }
    window.onerror=dudu.onerr();</script>
      

  5.   

    我想搞明确的就是为什么宿主dudu.grunt()的时候,其中的this的宿主是dudu,那window.onerror=dudu.onerr时,dudu.onerr中的this的宿主是谁,我可以理解成window,但是遇到其他情况的时候有没有什办法看到this的宿主是谁,this有这个属性方便查看吗
      

  6.   

    你这么样确定this,指向谁好了,
    方法是那个对象的,属于谁的,那方法的this 是谁的,
    不过你要注意,方法的顶层对象.有些方法没有new object ,我们直接 用,
    那它的顶层对象就是window ,方法里面的this,就是window,
    还有 ojbect.method.call(object2,argusments)
    那method里面的this,就只向object2了,
    老兄明白了吗
      

  7.   

    我知道this的宿主会变化的,onerr作为函数对象被赋个了window.onerror,就是有时会忽略,不知道有没有办法显式输出this的宿主啊
      

  8.   

    dudu.onerr 里面的this 指的是dudu 啊,谁说是window 
    误人子弟啊
      

  9.   

    不要意思我看错了;在这个地方是指的window