1

任何想法以下行做什么?

这里的“Popup”是一个什么样的事件?

fireEvent('Popup','ok');
4

2 回答 2

5

事件通常分为两种类型。DOMEventClass.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本身是来自原型的扩展属性,它不是全局变量/函数,尽管根据您发布的代码它看起来像一个......

于 2012-06-06T15:11:14.603 回答
2

显然(并且根据文档),它会触发'Popup'带有参数类型的事件'ok'。这似乎是自定义事件类型,因此要了解它的确切作用以及它如何解释它的参数,您需要查阅处理此事件的代码的源代码或文档。

于 2012-06-06T14:49:02.160 回答