gpt4 book ai didi

javascript - 如何通过 EventTarget 原型(prototype)将数据传递给自定义事件?

转载 作者:行者123 更新时间:2023-12-03 02:34:38 27 4
gpt4 key购买 nike

我正在关注这个blog post使用 EventTarget 原型(prototype)创建自定义事件。就我而言,这个 EventTarget需要修改对象以返回 dataonDataEvent听众:

o.onDataEvent("foo", function(data){
var dataRetrieved = data.message; //retrieve data object passed to fire function
console.log(dataRetrieved); //undefined
alert("Foo just happened.");
});

所以我根据 this blog post 提出了一个要点在 JSFiddle 中,我重写了 EventTarget.fire调度事件的函数,接受第二个参数数据

还修改了 onDataEvent 签名以包含数据参数。这里的想法是,除了调用 event("foo")我会向事件返回一些数据。

我知道该事件是通过 listeners[i].call(this, event); 调用的但我不清楚如何将数据传回 .call .

问题:

如何通过 EventTarget 原型(prototype)将数据传递到自定义事件?

这是该代码的要点:https://jsfiddle.net/hLj7yxw9/8/

在调试过程中,我验证了该事件是使用此模式调用的,正如您在上面的 fiddle 中看到的那样。

最佳答案

数据传递为listeners[i].call(this, event, data)

然后在你的监听器中执行以下操作:

o.onDataEvent("foo", function(event, data){
console.log(data);
});

https://jsfiddle.net/hLj7yxw9/9/

关于javascript - 如何通过 EventTarget 原型(prototype)将数据传递给自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587892/

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