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