Tôi đã tạo một lớp javascript đơn giản bằng cách sử dụng kỹ thuật 'chức năng'. Trong lớp, tôi có trình nghe websocket, kích hoạt chức năng khi nhận được một tin nhắn nhất định. tôi có thể dễ dàng thêm một callback bên ngoài để nó như sauCách thêm nhiều cuộc gọi lại vào một phương thức javascript?
function MyClass() {
self = this; // to access main object from methods
// websocket definition
function websocketMessageInterpreter(message){
if(message == "Hello!") onHelloMessageBase();
}
function onHelloMessageBase(param){
// call user defined callback
self.userDefinedCallback(param);
}
this.userDefinedCallback= function(param){}; //default empty callback
}
Bên ngoài tôi sử dụng điều này như
var myObject = new MyClass();
myObject.userDefinedCallback = function(){alert("Someone said hello!");};
Có một mô hình mà tôi có thể làm điều gì đó như thế này?
myObject.userDefinedCallback += function1;
myObject.userDefinedCallback += function2;
và có lẽ sau
myObject.userDefinedCallback -= function1;
bạn có thể viết [hàm lồng nhau] (http://stackoverflow.com/questions/7295634/javascript-nested-function) vào hàm gọi lại – Johnny000