以下一行有什么想法?
这里的“Popup”是什么类型的活动?
fireEvent('Popup','ok');
答案 0 :(得分:5)
事件通常分为两种类型。 DOMEvent
和Class.Event
。
最常见的是,后者是有意义的。 this.fireEvent('popup', 'ok');
会让实例知道发生了什么奇妙的事情。
与Class中的[Options,Events]
mixins一起使用,如果您的实例是使用以下内容创建的:
var foo = new someclass({
onPopup: function(status) {
console.log(status); // ok!
console.log(this); // the instance (foo);
}
});
// later.
foo.fireEvent('popup', 'fail');
但在你的情况下,我不确定这是关于一堂课的,因为:
您还可以在宽松/模糊的环境中使用事件,例如DOM元素,您可以在其中发布事件到pub / sub各种组件。例如。 window.fireEvent('popup', 'ok');
- 或者在您的示例中,fireEvent('popup')
本身 - 将触发全局窗口对象上的事件回调,因为没有定义其他上下文。
这适用于您在块中添加的任何内容,如下所示:
window.addEvent('popup', function(status) {
});
不键入上下文对象对于范围链查找和可读性来说真的很糟糕。你只能做fireEvent('domready')
这一事实并不意味着你应该这样做。写这篇文章的人正在采取不提高可读性的愚蠢捷径。 fireEvent
本身是一个来自原型的expando属性,它不是一个全局变量/函数,尽管它看起来像你发布的代码一样......
答案 1 :(得分:2)
显然(和according to documentation)会使用参数'Popup'
触发'ok'
类型的事件。这看起来像自定义事件类型,因此要查明它究竟是什么以及它如何解释它的参数,您需要查阅处理此事件的代码的源代码或文档。