如何设计一个JavaScript类以干净的方式支持回调?

如何设计一个JavaScript类以干净的方式支持回调?,javascript,Javascript,我试图设计一些类来支持回调功能。MyClass1和MyClass2类不起作用。Class3成功了,但设计真的很糟糕。它使用外部类引用来调用该方法。我想实现一个类似于MyClass1的设计,它更清晰,并且不与外部变量耦合。这种回调机制对ajax调用也非常有用。 $j只是jQuery的别名 function MyClass1() { $j("#myDiv1").click(this.func); this.func = function() { alert("I

我试图设计一些类来支持回调功能。MyClass1和MyClass2类不起作用。Class3成功了,但设计真的很糟糕。它使用外部类引用来调用该方法。我想实现一个类似于MyClass1的设计,它更清晰,并且不与外部变量耦合。这种回调机制对ajax调用也非常有用。 $j只是jQuery的别名

function MyClass1() {  
    $j("#myDiv1").click(this.func);

    this.func = function() {
        alert("Inside method.");
    }
}

var _class2;  
function MyClass2() {  
    _class2 = this;  
    $j("#myDiv2").click( _class2.func );

    this.func = function() {
        alert("Inside method.");
    }
}

function MyClass3() {  
    $j("#myDiv3").click( function() { cls3.func(); } );   

    this.func = function() {
        alert("Inside method.");
    }
}

var cls1 = new MyClass1();  
var cls2 = new MyClass2();  
var cls3 = new MyClass3();  
你是你的朋友

function MyClass()
{
  // This local variable can be closed by the anonymous
  // function below
  var self = this;

  $('#myDiv1').click( function()
  {
    self.func();
  });

  this.func = function()
  {
    alert("Inside method.");
  }
}
你是你的朋友

function MyClass()
{
  // This local variable can be closed by the anonymous
  // function below
  var self = this;

  $('#myDiv1').click( function()
  {
    self.func();
  });

  this.func = function()
  {
    alert("Inside method.");
  }
}
另见。理解这种绑定在JavaScript中的实际工作原理非常重要。答案:在处理观察器和委托时很奇怪。另请参阅。理解这种绑定在JavaScript中的实际工作原理非常重要。答案:在处理观察器和委托时会很奇怪。