我有下面的代码:如何创建和Singleton类中的事件处理程序 - 的Javascript
// Singleton
var mySingleton = (function() {
// Private methods and variables
function privateMethod(){
console.log("I am private");
}
var privateVariable = "Im also private";
return {
// Public methods and variables
hello: function() {
console.log("I want to ''fire'' the event 'hello'");
}
};
})();
而且我要创造我自己的事件处理系统。我试着用下面的代码:
var mySingleton = (function() {
function privateMethod(){
console.log("I am private");
}
var handlers = {};
mySingleton.prototype.registerHandler = function(event, callback) {
this.handlers[event] = callback;
};
mySingleton.prototype.fire = function(event) {
this.handlers[event]();
};
var privateVariable = "Im also private";
return {
hello: function() {
console.log("I want to ''fire'' the event 'hello'");
fire('hello');
}
};
})();
我使用方法如下:
mySingleton .registerHandler('hello', function() {
alert('Hi!');
});
但是,这并不工作...我扔了一个错误:
Cannot read property 'prototype' of undefined
有人可以帮我吗?
我目前的错误:
Uncaught TypeError: Cannot set property 'mycustomevent' of undefined
Uncaught TypeError: Cannot read property 'mycustomevent' of undefined
您好,感谢您的校正。但是...当我尝试使用它: mySingleton .registerHandler( 'mycustomevent',函数(){ ... }); 和mySingleton.fire('mycustomevent'); 扔我的下一个错误: 遗漏的类型错误:无法设置未定义 遗漏的类型错误的特性“mycustomevent”:无法读取的不确定 财产“mycustomevent”愿你能帮助我,好吗? – MartaGom 2014-12-07 16:22:53
¡对不起!我忘了删除“这个”参考。它工作太棒了。非常感谢:) – MartaGom 2014-12-07 16:37:56
@MartaFernandez好吧,我很高兴它为你工作! – Pointy 2014-12-07 16:48:49