UNPKG

gs-events

Version:

事件分发器(同步)

727 lines (466 loc) 35 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base data-ice="baseUrl" href="../../"> <title data-ice="title">EventDispatcher | gs-events</title> <link type="text/css" rel="stylesheet" href="css/style.css"> <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css"> <script src="script/prettify/prettify.js"></script> <script src="script/manual.js"></script> <meta name="description" content="&#x4E8B;&#x4EF6;&#x5206;&#x53D1;&#x5668;&#xFF08;&#x540C;&#x6B65;&#xFF09;"><meta property="twitter:card" content="summary"><meta property="twitter:title" content="gs-events"><meta property="twitter:description" content="&#x4E8B;&#x4EF6;&#x5206;&#x53D1;&#x5668;&#xFF08;&#x540C;&#x6B65;&#xFF09;"></head> <body class="layout-container" data-ice="rootContainer"> <header> <a href="./">Home</a> <a href="identifiers.html">Reference</a> <a href="source.html">Source</a> <div class="search-box"> <span> <img src="./image/search.png"> <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span> </span> <ul class="search-result"></ul> </div> <a style="position:relative; top:3px;" href="https://github.com/guless/events"><img width="20px" src="./image/github.png"></a></header> <nav class="navigation" data-ice="nav"><div> <ul> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/CustomEvent.js~CustomEvent.html">CustomEvent</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/Event.js~Event.html">Event</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html">EventDispatcher</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/EventListener.js~EventListener.html">EventListener</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/EventListenerOptions.js~EventListenerOptions.html">EventListenerOptions</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/EventPhase.js~EventPhase.html">EventPhase</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-interface">I</span><span data-ice="name"><span><a href="class/src/IEventDispatcher.js~IEventDispatcher.html">IEventDispatcher</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-interface">I</span><span data-ice="name"><span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-interface">I</span><span data-ice="name"><span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span></span></li> </ul> </div> </nav> <div class="content" data-ice="content"><div class="header-notice"> <div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode">import EventDispatcher from &apos;<span><a href="file/src/EventDispatcher.js.html#lineNumber50">gs-events/src/EventDispatcher.js</a></span>&apos;</code></pre></div> <span data-ice="access">public</span> <span data-ice="kind">class</span> <span data-ice="since">| since 1.0.0</span> <span data-ice="source">| <span><a href="file/src/EventDispatcher.js.html#lineNumber50">source</a></span></span> </div> <div class="self-detail detail"> <h1 data-ice="name">EventDispatcher</h1> <div class="flat-list" data-ice="implements"><h4>Implements:</h4><ul><li><span><a href="class/src/IEventDispatcher.js~IEventDispatcher.html">IEventDispatcher</a></span></li></ul></div> <div class="description" data-ice="description"><p>&#x5B9A;&#x4E49;&#x6240;&#x6709;&#x5177;&#x5907;&#x4E8B;&#x4EF6;&#x6D3E;&#x53D1;&#x529F;&#x80FD;&#x5BF9;&#x8C61;&#x7684;&#x57FA;&#x7C7B;&#x3002;</p> </div> </div> <div data-ice="constructorSummary"><h2>Constructor Summary</h2><table class="summary" data-ice="summary"> <thead><tr><td data-ice="title" colspan="3">Public Constructor</td></tr></thead> <tbody> <tr data-ice="target"> <td> <span class="access" data-ice="access">public</span> <span class="override" data-ice="override"></span> </td> <td> <div> <p> <span class="code" data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html#instance-constructor-constructor">constructor</a></span></span><span class="code" data-ice="signature">(target: <span><a href="class/src/IEventDispatcher.js~IEventDispatcher.html">IEventDispatcher</a></span>)</span> </p> </div> <div> <div data-ice="description"><p>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x6D3E;&#x53D1;&#x5668;&#x3002;</p> </div> </div> </td> <td> <span class="since" data-ice="since">since 1.0.0</span> </td> </tr> </tbody> </table> </div> <div data-ice="methodSummary"><h2>Method Summary</h2><table class="summary" data-ice="summary"> <thead><tr><td data-ice="title" colspan="3">Public Methods</td></tr></thead> <tbody> <tr data-ice="target"> <td> <span class="access" data-ice="access">public</span> <span class="override" data-ice="override"></span> </td> <td> <div> <p> <span class="code" data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html#instance-method-addEventListener">addEventListener</a></span></span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>, handler: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span>, options: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span>)</span> </p> </div> <div> <div data-ice="description"><p>&#x6CE8;&#x518C;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </div> </div> </td> <td> <span class="since" data-ice="since">since 1.0.0</span> </td> </tr> <tr data-ice="target"> <td> <span class="access" data-ice="access">public</span> <span class="override" data-ice="override"></span> </td> <td> <div> <p> <span class="code" data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html#instance-method-dispatchEvent">dispatchEvent</a></span></span><span class="code" data-ice="signature">(event: <span><a href="class/src/Event.js~Event.html">Event</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></span> </p> </div> <div> <div data-ice="description"><p>&#x6D3E;&#x53D1;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x5BF9;&#x8C61;&#x5230;&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#x7684;&#x4E8B;&#x4EF6;&#x6D41;&#x4E2D;&#x3002;</p> </div> </div> </td> <td> <span class="since" data-ice="since">since 1.0.0</span> </td> </tr> <tr data-ice="target"> <td> <span class="access" data-ice="access">public</span> <span class="override" data-ice="override"></span> </td> <td> <div> <p> <span class="code" data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html#instance-method-hasEventListener">hasEventListener</a></span></span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></span> </p> </div> <div> <div data-ice="description"><p>&#x68C0;&#x67E5;&#x662F;&#x5426;&#x6CE8;&#x518C;&#x4E86;&#x6307;&#x5B9A;&#x7C7B;&#x578B;&#x7684;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </div> </div> </td> <td> <span class="since" data-ice="since">since 1.0.0</span> </td> </tr> <tr data-ice="target"> <td> <span class="access" data-ice="access">public</span> <span class="override" data-ice="override"></span> </td> <td> <div> <p> <span class="code" data-ice="name"><span><a href="class/src/EventDispatcher.js~EventDispatcher.html#instance-method-removeEventListener">removeEventListener</a></span></span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>, handler: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span>, useCapture: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span>)</span> </p> </div> <div> <div data-ice="description"><p>&#x79FB;&#x9664;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </div> </div> </td> <td> <span class="since" data-ice="since">since 1.0.0</span> </td> </tr> </tbody> </table> </div> <div data-ice="constructorDetails"><h2 data-ice="title">Public Constructors</h2> <div class="detail" data-ice="detail"> <h3 data-ice="anchor" id="instance-constructor-constructor"> <span class="access" data-ice="access">public</span> <span class="code" data-ice="name">constructor</span><span class="code" data-ice="signature">(target: <span><a href="class/src/IEventDispatcher.js~IEventDispatcher.html">IEventDispatcher</a></span>)</span> <span class="right-info"> <span class="since" data-ice="since">since 1.0.0</span> <span data-ice="source"><span><a href="file/src/EventDispatcher.js.html#lineNumber56">source</a></span></span> </span> </h3> <div data-ice="description"><p>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x6D3E;&#x53D1;&#x5668;&#x3002;</p> </div> <div data-ice="properties"><div data-ice="properties"> <h4 data-ice="title">Params:</h4> <table class="params"> <thead> <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr> </thead> <tbody> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">target</td> <td data-ice="type" class="code"><span><a href="class/src/IEventDispatcher.js~IEventDispatcher.html">IEventDispatcher</a></span></td> <td data-ice="appendix"><ul><li>optional</li> <li>default: null</li></ul></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x6D3E;&#x53D1;&#x5668;&#x7684;&#x4EE3;&#x7406;&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#x3002;</p> </td> </tr> </tbody> </table> </div> </div> </div> </div> <div data-ice="methodDetails"><h2 data-ice="title">Public Methods</h2> <div class="detail" data-ice="detail"> <h3 data-ice="anchor" id="instance-method-addEventListener"> <span class="access" data-ice="access">public</span> <span class="code" data-ice="name">addEventListener</span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>, handler: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span>, options: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span>)</span> <span class="right-info"> <span class="since" data-ice="since">since 1.0.0</span> <span data-ice="source"><span><a href="file/src/EventDispatcher.js.html#lineNumber140">source</a></span></span> </span> </h3> <div data-ice="description"><p>&#x6CE8;&#x518C;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> <p>&#x5982;&#x679C;&#x6D4F;&#x89C8;&#x5668;&#x652F;&#x6301; <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span> &#x7C7B;&#x578B;&#xFF0C;&#x5219;&#x4E8B;&#x4EF6;&#x7C7B;&#x578B;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span> &#x5BF9;&#x8C61;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x9632;&#x6B62; &#x4F60;&#x7684;&#x4E8B;&#x4EF6;&#x88AB;&#x5176;&#x4ED6;&#x4EBA;&#x610F;&#x5916;&#x7684;&#x79FB;&#x9664;&#x3002;</p> <p>&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x53EF;&#x4EE5;&#x6CE8;&#x518C;&#x5230;&#x6D3E;&#x53D1;&#x4E8B;&#x4EF6;&#x7684;&#x4EFB;&#x4F55;&#x4E00;&#x4E2A;&#x9636;&#x6BB5;&#xFF0C;<strong>&#x6355;&#x83B7;&#x9636;&#x6BB5;</strong>&#x548C;<strong>&#x5192;&#x6CE1;&#x9636;&#x6BB5;</strong>&#x7684;&#x4FA6;&#x542C;&#x5668;&#x662F;&#x76F8;&#x4E92;&#x72EC;&#x7ACB;&#x7684;&#x3002; &#x56E0;&#x6B64;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x7684; <code>useCapture</code> &#x503C;&#x5C06;&#x6CE8;&#x518C;&#x4E0D;&#x540C;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002;&#x540C;&#x6837;&#x79FB;&#x9664;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4E5F;&#x9700;&#x8981;&#x6307;&#x5B9A;&#x4E0D;&#x540C;&#x7684; <code>useCapture</code> &#x503C;&#x3002; </p> <p>&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x51FD;&#x6570;&#x9ED8;&#x8BA4;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x4E3A;&#x6D3E;&#x53D1;&#x5668;&#xFF08;<code>EventDispatcher</code>&#xFF09;&#x5BF9;&#x8C61;&#x6216;&#x8005;&#x5176;&#x4EE3;&#x7406;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x901A;&#x8FC7;&#x8BBE;&#x7F6E; <code>options.scope</code> &#x53EF;&#x4EE5;&#x4E3A;&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x51FD;&#x6570;&#x6307;&#x5B9A;&#x4F5C;&#x7528;&#x57DF;&#x3002;&#x4F46;&#x662F;&#x5982;&#x679C;&#x6CE8;&#x518C;&#x7684;&#x662F;&#x4E00;&#x4E2A;&#x5B9E;&#x73B0;&#x4E86; <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span> &#x63A5;&#x53E3;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x5219;&#x76F4;&#x63A5; &#x8C03;&#x7528;&#x5176; <code>handleEvent()</code> &#x65B9;&#x6CD5;&#x5904;&#x7406;&#x4E8B;&#x4EF6;&#xFF0C;&#x5E76;&#x4E14;&#x4F5C;&#x7528;&#x57DF;&#x59CB;&#x7EC8;&#x6307;&#x5411;&#x8BE5; <code>IEventListener</code> &#x5BF9;&#x8C61;&#x3002;</p> <p>&#x901A;&#x8FC7;&#x6307;&#x5B9A; <code>options.once</code> &#x9009;&#x9879;&#xFF0C;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x4FA6;&#x542C;&#x5668;&#x5728;&#x6267;&#x884C;&#x540E;&#xFF0C;&#x662F;&#x5426;&#x81EA;&#x52A8;&#x4ECE;&#x5217;&#x8868;&#x4E2D;&#x79FB;&#x9664;&#x3002;</p> <p>&#x4F18;&#x5148;&#x7EA7;&#x9AD8;&#xFF08;<code>options.priority</code>&#xFF09;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x4F1A;&#x5728;&#x6D3E;&#x53D1;&#x4E8B;&#x4EF6;&#x65F6;&#x4F18;&#x5148;&#x8C03;&#x7528;&#x3002;&#x76F8;&#x540C;&#x4F18;&#x5148;&#x7EA7;&#x7684;&#x60C5;&#x51B5;&#x4F1A;&#x6309;&#x7167;&#x6CE8;&#x518C;&#x7684;&#x5148;&#x540E; &#x987A;&#x5E8F;&#x8C03;&#x7528;&#x4FA6;&#x542C;&#x5668;&#x3002;&#x5206;&#x522B;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x7684;&#x4F18;&#x5148;&#x7EA7;&#x6CE8;&#x518C;&#x76F8;&#x540C;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x65F6;&#xFF0C;&#x4EE5;&#x6700;&#x540E;&#x4E00;&#x6B21;&#x6CE8;&#x518C;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x4E3A;&#x51C6;&#x3002;</p> </div> <div data-ice="properties"><div data-ice="properties"> <h4 data-ice="title">Params:</h4> <table class="params"> <thead> <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr> </thead> <tbody> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">type</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x4E8B;&#x4EF6;&#x7C7B;&#x578B;&#x3002;</p> </td> </tr> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">handler</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x51FD;&#x6570;&#x6216;&#x8005;&#x662F;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </td> </tr> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">options</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span></td> <td data-ice="appendix"><ul><li>optional</li> <li>default: false</li></ul></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x4FA6;&#x542C;&#x5668;&#x914D;&#x7F6E;&#x9009;&#x9879;&#x3002;</p> </td> </tr> </tbody> </table> </div> </div> <div data-ice="example"> <h4>Example:</h4> <div class="example-doc" data-ice="exampleDoc"> <pre class="prettyprint source-code"><code data-ice="exampleCode">const dispatcher = new EventDispatcher(); /// &#x5728;&#x5192;&#x6CE1;&#x9636;&#x6BB5;&#x6CE8;&#x518C;&#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; {}); dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; {}, false); /// &#x5728;&#x6355;&#x83B7;&#x9636;&#x6BB5;&#x6CE8;&#x518C;&#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; {}, true); /// &#x6307;&#x5B9A;&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x51FD;&#x6570;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x3002; const target = {}; dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; { console.log(target === this); // true }, { &quot;scope&quot;: target }); /// &#x6CE8;&#x518C;&#x4E00;&#x6B21;&#x6027;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; { /// &#x8BE5;&#x51FD;&#x6570;&#x6267;&#x884C;&#x540E;&#xFF0C;&#x5C06;&#x81EA;&#x52A8;&#x4ECE;&#x5217;&#x8868;&#x4E2D;&#x79FB;&#x9664;&#x3002; }, { &quot;once&quot;: true }); /// &#x5C3D;&#x7BA1;&#x8BE5;&#x4FA6;&#x542C;&#x5668;&#x540E;&#x6CE8;&#x518C;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x56E0;&#x4E3A;&#x5177;&#x6709;&#x8F83;&#x9AD8;&#x7684;&#x4F18;&#x5148;&#x7EA7;&#xFF0C;&#x6240;&#x4EE5;&#x4F1A;&#x5148;&#x88AB;&#x8C03;&#x7528;&#x3002; dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; { console.log(1); }, { &quot;priority&quot;: 1 }); /// &#x76F8;&#x540C;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x4F7F;&#x7528;&#x4E0D;&#x7528;&#x7684;&#x4F18;&#x5148;&#x7EA7;&#x591A;&#x6B21;&#x6CE8;&#x518C;&#xFF0C;&#x4EE5;&#x6700;&#x540E;&#x4E00;&#x6B21;&#x6CE8;&#x518C;&#x7684;&#x4F18;&#x5148;&#x7EA7;&#x4E3A;&#x51C6;&#x3002; const handler = ( evt ) =&gt; {}; dispatcher.addEventListener(&quot;custom&quot;, handler, { &quot;priority&quot;: 1 }); dispatcher.addEventListener(&quot;custom&quot;, handler, { &quot;priority&quot;: 2 }); // &#x53EA;&#x4F1A;&#x6CE8;&#x518C;&#x4E00;&#x4E2A;&#x4F18;&#x5148;&#x7EA7;&#x4E3A; 2 &#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002;</code></pre> </div> </div> <div data-ice="see"><h4>See:</h4><ul><li><span><span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span></span></li></ul></div> </div> <div class="detail" data-ice="detail"> <h3 data-ice="anchor" id="instance-method-dispatchEvent"> <span class="access" data-ice="access">public</span> <span class="code" data-ice="name">dispatchEvent</span><span class="code" data-ice="signature">(event: <span><a href="class/src/Event.js~Event.html">Event</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></span> <span class="right-info"> <span class="since" data-ice="since">since 1.0.0</span> <span data-ice="source"><span><a href="file/src/EventDispatcher.js.html#lineNumber286">source</a></span></span> </span> </h3> <div data-ice="description"><p>&#x6D3E;&#x53D1;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x5BF9;&#x8C61;&#x5230;&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#x7684;&#x4E8B;&#x4EF6;&#x6D41;&#x4E2D;&#x3002;</p> </div> <div data-ice="properties"><div data-ice="properties"> <h4 data-ice="title">Params:</h4> <table class="params"> <thead> <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr> </thead> <tbody> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">event</td> <td data-ice="type" class="code"><span><a href="class/src/Event.js~Event.html">Event</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x6D3E;&#x53D1;&#x7684;&#x4E8B;&#x4EF6;&#x5BF9;&#x8C61;&#x3002;</p> </td> </tr> </tbody> </table> </div> </div> <div class="return-params" data-ice="returnParams"> <h4>Return:</h4> <table> <tbody> <tr> <td class="return-type code" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></td> <td class="return-desc" data-ice="returnDescription"><p>&#x5982;&#x679C;&#x4E8B;&#x4EF6;&#x4F20;&#x9012;&#x5230;&#x4E86;&#x5F53;&#x524D;&#x76EE;&#x6807;&#x5BF9;&#x8C61;&#xFF0C;&#x5E76;&#x4E14;&#x6CA1;&#x6709;&#x88AB;&#x53D6;&#x6D88;&#x9ED8;&#x8BA4;&#x884C;&#x4E3A;&#x3002;&#x5219;&#x8FD4;&#x56DE; <code>true</code>&#xFF0C;&#x5426;&#x5219;&#x8FD4;&#x56DE; <code>false</code>&#x3002;</p> </td> </tr> </tbody> </table> <div data-ice="returnProperties"> </div> </div> <div data-ice="example"> <h4>Example:</h4> <div class="example-doc" data-ice="exampleDoc"> <pre class="prettyprint source-code"><code data-ice="exampleCode">const dispatcher = new EventDispatcher(); dispatcher.dispatchEvent(new Event(&quot;custom&quot;, false, false)); // &#x6D3E;&#x53D1;&#x4E00;&#x4E2A;&#x4E0D;&#x5192;&#x6CE1;&#x7684;&#x4E8B;&#x4EF6;&#x3002; dispatcher.dispatchEvent(new Event(&quot;custom&quot;, true, false)); // &#x6D3E;&#x53D1;&#x4E00;&#x4E2A;&#x53C2;&#x4E0E;&#x5192;&#x6CE1;&#x7684;&#x4E8B;&#x4EF6;&#x3002;</code></pre> </div> </div> </div> <div class="detail" data-ice="detail"> <h3 data-ice="anchor" id="instance-method-hasEventListener"> <span class="access" data-ice="access">public</span> <span class="code" data-ice="name">hasEventListener</span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>): <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></span> <span class="right-info"> <span class="since" data-ice="since">since 1.0.0</span> <span data-ice="source"><span><a href="file/src/EventDispatcher.js.html#lineNumber271">source</a></span></span> </span> </h3> <div data-ice="description"><p>&#x68C0;&#x67E5;&#x662F;&#x5426;&#x6CE8;&#x518C;&#x4E86;&#x6307;&#x5B9A;&#x7C7B;&#x578B;&#x7684;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </div> <div data-ice="properties"><div data-ice="properties"> <h4 data-ice="title">Params:</h4> <table class="params"> <thead> <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr> </thead> <tbody> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">type</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x4E8B;&#x4EF6;&#x7C7B;&#x578B;&#x3002;</p> </td> </tr> </tbody> </table> </div> </div> <div class="return-params" data-ice="returnParams"> <h4>Return:</h4> <table> <tbody> <tr> <td class="return-type code" data-ice="returnType"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span></td> <td class="return-desc" data-ice="returnDescription"><p>&#x5982;&#x679C;&#x5B58;&#x5728;&#x6307;&#x5B9A;&#x7C7B;&#x578B;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x5219;&#x8FD4;&#x56DE; <code>true</code>&#xFF0C;&#x5426;&#x5219;&#x8FD4;&#x56DE; <code>false</code>&#x3002;</p> </td> </tr> </tbody> </table> <div data-ice="returnProperties"> </div> </div> <div data-ice="example"> <h4>Example:</h4> <div class="example-doc" data-ice="exampleDoc"> <pre class="prettyprint source-code"><code data-ice="exampleCode">const dispatcher = new EventDispatcher(); dispatcher.addEventListener(&quot;custom&quot;, ( evt ) =&gt; {}, false); console.log(dispatcher.hasEventListener(&quot;custom&quot;)); // true console.log(dispatcher.hasEventListener(&quot;notexists&quot;)); // false</code></pre> </div> </div> </div> <div class="detail" data-ice="detail"> <h3 data-ice="anchor" id="instance-method-removeEventListener"> <span class="access" data-ice="access">public</span> <span class="code" data-ice="name">removeEventListener</span><span class="code" data-ice="signature">(type: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span>, handler: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span>, useCapture: <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span>)</span> <span class="right-info"> <span class="since" data-ice="since">since 1.0.0</span> <span data-ice="source"><span><a href="file/src/EventDispatcher.js.html#lineNumber225">source</a></span></span> </span> </h3> <div data-ice="description"><p>&#x79FB;&#x9664;&#x4E00;&#x4E2A;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> <p>&#x7B2C;&#x4E09;&#x4E2A;&#x53C2;&#x6570; <code>useCapture</code> &#x53EF;&#x4EE5;&#x662F;&#x4E00;&#x4E2A; <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> &#x7C7B;&#x578B;&#x7684;&#x503C;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x4E00;&#x4E2A; <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span> &#x7C7B;&#x578B;&#x7684;&#x503C;&#x3002;</p> <p>&#x53EA;&#x6709;&#x5B8C;&#x5168;&#x76F8;&#x540C;&#xFF08;&#x4F7F;&#x7528; === &#x5BF9;&#x6BD4;&#xFF09;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x624D;&#x4F1A;&#x88AB;&#x79FB;&#x9664;&#x3002;&#x56E0;&#x6B64;&#x4F7F;&#x7528; <code>useCapture=false</code> &#x5E76;&#x4E0D;&#x4F1A;&#x79FB;&#x9664;<strong>&#x6355;&#x83B7;&#x9636;&#x6BB5;</strong>&#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002; &#x540C;&#x7406; <code>useCapture=true</code> &#x4E5F;&#x4E0D;&#x4F1A;&#x79FB;&#x9664;<strong>&#x5192;&#x6CE1;&#x9636;&#x6BB5;</strong>&#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </div> <div data-ice="properties"><div data-ice="properties"> <h4 data-ice="title">Params:</h4> <table class="params"> <thead> <tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr> </thead> <tbody> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">type</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">String</a></span> | <span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbol</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x4E8B;&#x4EF6;&#x7C7B;&#x578B;&#x3002;</p> </td> </tr> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">handler</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function</a></span> | <span><a href="class/src/IEventListener.js~IEventListener.html">IEventListener</a></span></td> <td data-ice="appendix"></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x8981;&#x79FB;&#x9664;&#x7684;&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x51FD;&#x6570;&#x6216;&#x8005;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </td> </tr> <tr data-ice="property" data-depth="0"> <td data-ice="name" class="code" data-depth="0">useCapture</td> <td data-ice="type" class="code"><span><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></span> | <span><a href="class/src/IEventListenerOptions.js~IEventListenerOptions.html">IEventListenerOptions</a></span></td> <td data-ice="appendix"><ul><li>optional</li> <li>default: false</li></ul></td> <td data-ice="description"><p>&#x6307;&#x5B9A;&#x662F;&#x79FB;&#x9664;&#x6355;&#x83B7;&#x9636;&#x6BB5;(<code>true</code>)&#x8FD8;&#x662F;&#x5192;&#x6CE1;&#x9636;&#x6BB5;(<code>false</code>)&#x7684;&#x4E8B;&#x4EF6;&#x4FA6;&#x542C;&#x5668;&#x3002;</p> </td> </tr> </tbody> </table> </div> </div> <div data-ice="example"> <h4>Example:</h4> <div class="example-doc" data-ice="exampleDoc"> <pre class="prettyprint source-code"><code data-ice="exampleCode">/// &#x4F7F;&#x7528;&#x4E0D;&#x7528;&#x7C7B;&#x578B;&#x7684; useCapture &#x503C;&#x79FB;&#x9664;&#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.removeEventListener(type, handler, false); dispatcher.removeEventListener(type, handler, { &quot;useCapture&quot;: true }); /// &#x5206;&#x522B;&#x79FB;&#x9664;&#x4E0D;&#x7528;&#x9636;&#x6BB5;&#x7684;&#x4FA6;&#x542C;&#x5668;&#x3002; const dispatcher = new EventDispatcher(); function captureHandler( evt ) { console.log(&quot;capture&quot;); } dispatcher.addEventListener(&quot;custom&quot;, captureHandler, true); dispatcher.removeEventListener(&quot;custom&quot;, captureHandler, false); // &#x8FD9;&#x91CC;&#x5E76;&#x4E0D;&#x4F1A;&#x79FB;&#x9664; captureHandler &#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.hasEventListener(&quot;custom&quot;); // true dispatcher.removeEventListener(&quot;custom&quot;, captureHandler, true); // &#x8FD9;&#x91CC;&#x624D;&#x4F1A;&#x79FB;&#x9664; captureHandler &#x4FA6;&#x542C;&#x5668;&#x3002; dispatcher.hasEventListener(&quot;custom&quot;); // false</code></pre> </div> </div> </div> </div> </div> <footer class="footer"> Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(1.0.4)</span><img src="./image/esdoc-logo-mini-black.png"></a> </footer> <script src="script/search_index.js"></script> <script src="script/search.js"></script> <script src="script/pretty-print.js"></script> <script src="script/inherited-summary.js"></script> <script src="script/test-summary.js"></script> <script src="script/inner-link.js"></script> <script src="script/patch-for-local.js"></script> </body> </html>