gpt4 book ai didi

javascript - 在 mootools 中调用没有上下文的 .fireEvent()

转载 作者:行者123 更新时间:2023-11-30 07:43:54 25 4
gpt4 key购买 nike

知道下面这行的作用吗?

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

fireEvent('Popup','ok');

最佳答案

事件通常分为两种类型。 DOMEventClass.Event

最常见的是后者。 this.fireEvent('popup', 'ok'); 会让实例知道发生了一些奇妙的事情。

与类中的 [Options,Events] 混合使用,如果您的实例是通过以下方式创建的:

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') 本身 - 将触发事件回调全局窗口对象,因为没有定义其他上下文。

这将适用于您在 block 中添加的任何内容,如下所示:

window.addEvent('popup', function(status) {

});

不键入上下文对象对于范围链查找和可读性来说真的很糟糕。事实上,您可以只执行 fireEvent('domready') 并不意味着您应该这样做。不管是谁写的,都是在走愚蠢的捷径,不提高可读性。 fireEvent 本身是一个来自原型(prototype)的 expando 属性,它不是一个全局变量/函数,尽管根据您发布的代码它看起来像一个...

关于javascript - 在 mootools 中调用没有上下文的 .fireEvent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com