下面的代码片段,id为domId的元素点击后,handle这个函数内的this实际是指向domId这个元素的,有什么方法能访问到test内定义的 a 呢?var test = function(){
  a:"AAA",
  handle:function (){
    alert(this.a);
  }
}var obj = new test();
$("#domId").click(obj.handle);

解决方案 »

  1.   

    写成
    handle:function (){
      alert(obj.a);
    }
    可以访问到,如果想把test写成个组件,这样访问就不通用了
      

  2.   


    正解。obj是全局变量 可以访问到的!!
      

  3.   


    正解。 obj是全局变量 可以调用到的!!
      

  4.   

    试了一下,写成这样就可以了。
               var test = function(){
                  var self = this;
                  this.a = "AAA";
                  this.handler = function(){
                    alert(self.a);//可访问
                    alert(self.b);//可访问
                  };
                  
                  this.init();
                };
                
                test.prototype = {
                  b:"BBB",
                  init:function(id){
                    $("#" + id).click(this.handler);
                  }
                }
                
                var obj = new test();
                obj.init("domId");