如何通过 EventTarget 原型将数据传递给自定义事件?
How to pass data to a custom event via EventTarget prototype?
我正在关注 blog post 使用 EventTarget 原型创建自定义事件。在我的例子中,这个 EventTarget
对象需要修改为 return data
给 onDataEvent
监听器:
o.onDataEvent("foo", function(data){
var dataRetrieved = data.message; //retrieve data object passed to fire function
console.log(dataRetrieved); //undefined
alert("Foo just happened.");
});
所以我在 JSFiddle 中基于 this blog post 做了一个要点,我在其中覆盖了调度事件的 EventTarget.fire
函数,以接受 data[ 的第二个参数=39=].
并且还修改了 onDataEvent 签名以包含数据参数。这里的想法是,除了调用 event("foo")
之外,我还会 return 一些数据到事件中。
我知道事件是通过 listeners[i].call(this, event);
调用的,但我不清楚如何在 .call
中传回数据。
问题:
如何通过 EventTarget 原型将数据传递给自定义事件?
这是该代码的要点:https://jsfiddle.net/hLj7yxw9/8/
在调试过程中,我验证了事件是使用此模式调用的,正如您在上面看到的那样 fiddle。
将 data
作为 listeners[i].call(this, event, data)
传递
然后在你的听众中做:
o.onDataEvent("foo", function(event, data){
console.log(data);
});
我正在关注 blog post 使用 EventTarget 原型创建自定义事件。在我的例子中,这个 EventTarget
对象需要修改为 return data
给 onDataEvent
监听器:
o.onDataEvent("foo", function(data){
var dataRetrieved = data.message; //retrieve data object passed to fire function
console.log(dataRetrieved); //undefined
alert("Foo just happened.");
});
所以我在 JSFiddle 中基于 this blog post 做了一个要点,我在其中覆盖了调度事件的 EventTarget.fire
函数,以接受 data[ 的第二个参数=39=].
并且还修改了 onDataEvent 签名以包含数据参数。这里的想法是,除了调用 event("foo")
之外,我还会 return 一些数据到事件中。
我知道事件是通过 listeners[i].call(this, event);
调用的,但我不清楚如何在 .call
中传回数据。
问题:
如何通过 EventTarget 原型将数据传递给自定义事件?
这是该代码的要点:https://jsfiddle.net/hLj7yxw9/8/
在调试过程中,我验证了事件是使用此模式调用的,正如您在上面看到的那样 fiddle。
将 data
作为 listeners[i].call(this, event, data)
然后在你的听众中做:
o.onDataEvent("foo", function(event, data){
console.log(data);
});