当前位置: 首页 > article >正文

源码分析之Openlayers的核心EventTarget类的实现

概述

EventTarget类是 Openlayers 中许多类实现的基类,主要和事件监听触发有关。

源码剖析

Disposable

EventTarget类继承于Disposable类,其实现如下:

class Disposable {
   
  constructor() {
   
    this.disposed = false;
  }

  dispose() {
   
    if (!this.disposed) {
   
      this.disposed = true;
      this.disposeInternal();
    }
  }

  disposeInternal() {
   }
}

Disposable类中定义了一个disposed变量,默认值为false,两个方法dispose()disposeInternal()

dispose译为处置,由此推定Disposable类就是用于在函数调用后执行某些clean up操作。

Target

EventTarget类即target实现如下:

class Target extends Disposable {
   
  constructor(target) {
   
    super();
    this.eventTarget_ = target;
    this.pendingRemovals_ = null;
    this.dispatching_ = null;
    this.listeners_ = null;
  }

  addEventListener(type, listener) {
   
     if (!type || !listener) {
   
      return;
    }
    const listeners = this.listeners_ || (this.listeners_ = {
   });
    const listenersForType = listeners[type] || (listeners[type] = []);
    if (!listenersForType.

http://www.kler.cn/a/419707.html

相关文章:

  • 【RDMA】RDMA read和write编程实例(verbs API)
  • React16搭建-GPT回答
  • 万字长文解读深度学习——多模态模型BLIP2
  • MySql:理解数据库
  • Kafka配置SASL/PLAINTEXT安全认证
  • pycharm链接neo4j数据库(简单)
  • Python 列表操作详解
  • 深入解析数据结构:红黑树、哈希Map、B树与B+树的底层逻辑
  • ctfhub web技能树篇
  • 基于 PostgreSQL 和 PostGIS 数据服务器模式的设计方案
  • 高斯消元——acwing
  • C++stack、queue
  • npm安装依赖后报错
  • 【计算机网络】实验6:IPV4地址的构造超网及IP数据报
  • Go运行Grule引擎实现计费规则管理
  • 【Linux】开启你的Linux之旅:初学者指令指南
  • LeetCode27.移除元素
  • NGO-CNN-BiGRU-Attention北方苍鹰算法优化卷积双向门控循环单元时间序列预测,含优化前后对比
  • 深入浅出机器学习中的梯度下降算法
  • 【深度学习】检索增强生成 RAG
  • JAVA中的@Builder是什么意思
  • Day29 贪心算法 part03
  • # 02_Python基础到实战一飞冲天(三)-python面向对象(二)--初始化方法和内置方法
  • MyBatis-Plus介绍及基本使用
  • 如何在鸿蒙API9和x86模拟器中使用MQTT
  • 昇腾CANN 8.0基于LLM P-D分离部署方案发布LLM-DataDist组件:高效低成本,简单易集成