javascript创建类事件

时间:2012-03-12 15:54:20

标签: javascript class

如何为javascript类创建自定义事件?
示例代码

function somefunction(url){
   this.h_world = function(){/*some random code to do*/ };
}

var hw = new somefunction();

现在,举一个非常简单的例子,当hw.h_world完成执行并用它返回一些数据时,如何为此创建一个自定义事件处理程序?

例如

var hw = new somefunction();
hw.h_world();
hw.finished_h_world = function(somedata){
  alert(somedata);
}

2 个答案:

答案 0 :(得分:5)

您需要的是回调函数:

function somefunction(url){
   this.h_world = function(callback){
      var somedata = 'some data';
      callback(somedata);
   };
}

然后:

var hw = new somefunction();
hw.h_world(function(somedata){
    alert(somedata); // Will alert 'some data';
});

这是一个jsfiddle:http://jsfiddle.net/remibreton/xzeEd/

答案 1 :(得分:2)

你可以将回调函数传递给h_world函数并在完成时执行它

function somefunction(url){
   this.h_world = function(cb){
      //do some operation
      if (cb && typeof cb === 'function') {
         cb();
         //cb.call(this, args1, arg2...); //execute callback in scope of current object
      }
   };
}

或者您可以像这样向您的班级添加一个功能

function somefunction(url){
   this.h_world = function(){
      //do operation
      this.h_world_finish(parameters);   
   };
   this.h_world_finish = function () {};
}

var obj = new someFunction(url);
obj.h_world_finish = function (arg) {
    alert("finished h_world");
};
obj.h_world();