javascript 中自定义事件的目的是什么?

What is the purpose of custom events in javascript?

我无法理解您在什么情况下会使用自定义事件。 我的意思是 CustomEvent 构造函数创建的。

我理解语法本身,只是不知道它为什么有用。如果有人可以提供自定义事件在现实世界中应用的示例,那就太好了。

我使用它 (shameless plug) 在 div 元素上引发 "resize" 事件,然后使用单独的绑定框架 (aurelia) 来监听这些事件。

显式代码示例为:

var element = this.element; // some element
var erd = erd({ strategy: 'scroll' });

var widthOld = element.offsetWidth;
var heightOld = element.offsetHeight;

this.callback = () => {
  var event = new CustomEvent("resize", {
    detail: {
      width: this.element.offsetWidth,
      height: this.element.offsetHeight,
      widthOld: widthOld,
      heightOld: heightOld
    }
  });
  element.dispatchEvent(event);
  widthOld = this.element.offsetWidth;
  heightOld = this.element.offsetHeight;
};

erd.listenTo(this.element, this.callback);

其中 erd 是 element-resize-detector,它允许您检测任何 div 何时改变形状。