forms[0].input_name.attachEvent("onchange",new Test().check);代码仅供参考,只是告诉楼主可以通过attachEvent实现.

解决方案 »

  1.   


    <HTML> 
    <HEAD> 
      <TITLE> New Document </TITLE> </HEAD> 
    <script> 
    function Test(item1) 

        this.item1 = item1; 
        this.check = function() 
        { 
              alert("item1 = "+this.item1); 
        } 

    </script> 
    <body>
    <input type="button" value="test" onclick="new Test('ss').check()"></body>
    </HTML> lz是这个意思吗?
      

  2.   

    forms[0].input_name.attachEvent("onchange",new Test(document.getElementById('input_name')).check); LZ可能是这个意思
      

  3.   

    呵呵,我的意思是
     function Test(item1) 
     { 
        this.item1 = item1; 
        this.check = function() 
        { 
             //把这个方法注册在id2的事件上,然后在这里对id1进行操作          
        } 
     }  <head>
       window.onlaod = function()
      {
          var r = new Test('id1');    
          document.getElementById('id2').onClick = r.check;  }
    </head>
    <body>
        <input type="text" id="id1">
        <input type="text" id="id2">
    </body>由于在事件触发的时候,控件id2被作为check方法的上下文对象传到了方法里此时在check方法里调用原来Object上的属性item1就访问不到了我是想问问有没有方法在check()方法里访问到这个item1不知道说明白了没有?呵呵
      

  4.   


    这样写:document.getElementById('id2').onclick =function(){r.check();}
      

  5.   

    楼主想做的是不可能直接做到的,js的function里面的this指向的是调用他的对象,而把一个function作为事件响应函数,那么调用的对象就不会是你定义的对象了绕个弯子实现可以,如使用代理,反正要实现的话就是想办法让你定义的对象调用函数
    function Test(item1) 
     { 
        this.item1 = item1; 
        var trueFn = fucntion(}{};
        var obj = this;
        this.check = function() 
        { 
             trueFn.apply(obj , arguments);      
        } 
        
     }
      

  6.   

    没什么意义吧
    <script>
    function Test(item1) 

    this.item1 = item1; 
    this.check = function() 

     alert(this.item1); //把这个方法注册在id2的事件上,然后在这里对id1进行操作          
    }
    }window.onload = function()
    {
      var r = new Test('id1');
      document.getElementById('id2').onclick = (function(){
    return function (){
    r.check(); // id1
    }
    })()
    }</script><input type="text" id="id1">
    <input type="text" id="id2">
      

  7.   

    LZ想要什么功能?是要id2的事件引发check方法吗?
    如果是这样的话,楼上的正解~
      

  8.   

    12楼那朋友我写那代码肯定就是楼主想要的,但能像我这么写吗?
    如果不行,能给我说说原因吗?
       function Test(item1) 

    this.item1 = item1; 
    this.check = function() 

     alert(item1); 
    }
    }
      var r = new Test('id1');
      document.getElementById('id2').onclick = r.check();
    这样能直接调用check()方法吗?
      

  9.   

    r.check() 是执行这个方法
      

  10.   

      function Test(item1) 

    this.item1 = item1; 
    this.check = function() 

    alert(item1); 


      var r = new Test('id1'); 
      document.getElementById('id2').onclick = r.check(); 
    12楼朋友你看我这好像也是用Test对象去调check()方法的,为什么就不行呢?
      

  11.   


    不行的原因是因为,定义变量的时候,访问的是Object实例上的item1变量而当事件触发的时候,浏览器把控件作为上下文对象传给了check方法在check方法里就找不到这个变量,也就是他访问不到Object对象上的变量如果看不明白我写的这些,建议你在网上搜搜 JavaScript的方法上下文然后就明白为什么了。
    我问这个问题是想问有没有什么办法来打破上下文对象的限制就是一个对象的方法,被注册到控件事件上,当事件触发的时候调用该方法而该方法又使用到了对象本身的一些属性,但是现在由于方法上下文的不同,导致方法在作为事件处理方法时,是访问不到对象的属性的。我是想做类似的监听器模式,让一个对象的方法监听控件时间,并处理想把这个JavaScript对象,写成类似 Java里的 Listener对象但是现在不行、不知道这次看明白了没?