JavaScript调度CustomEvent:new或重用

时间:2017-06-14 05:48:49

标签: javascript dispatch custom-events

我想在不同的场合发送一个CustomEvent。网上的大多数示例只创建和发送一次CustomEvents。我想知道如何正确地做到这一点。

在此示例中,“A-Button”一遍又一遍地调度同一事件。 new CustomEvent,应该调度该事件。

var targetA = document.getElementById('targetA');
var targetB = document.getElementById('targetB');

var evtA = new CustomEvent("myEvent");

function a(){
  targetA.dispatchEvent(evtA);
}

function b(){
  targetB.dispatchEvent(new CustomEvent("myOtherEvent"));
}

targetA.addEventListener("myEvent", function(e){
  console.log(e);
  console.log(e.timeStamp);
});

targetB.addEventListener("myOtherEvent", function(e){
  console.log(e);
  console.log(e.timeStamp);
});
<button onclick="a()">A</button>
<button onclick="b()">B</button>
<div id="targetA"></div>
<div id="targetB"></div>

A方法的副作用可能是时间戳未更新。这可能会导致依赖于时间戳的处理程序出现意外行为。

B方法可能性能较差,因为CustomEvent对象反复实例化。 (记忆应该不是问题。)

是否有“正确”的方式,还是有最佳做法?

0 个答案:

没有答案