`

在事件侦听器中使用闭包(转自Google Api 文档)

阅读更多

在事件侦听器中使用闭包

在执行事件侦听器时,通常可取的做法是将私有数据和持久性数据附加到对象中。JavaScript 不支持“私有”实例数据,但它支持允许内部函数访问外部变量的闭包。在事件侦听器访问通常不附加到发生事件的对象的变量时,闭包非常有用。

下例在事件侦听器中使用函数闭包将加密消息分配给一组标记。点击每个标记都可以看到加密消息的一部分,该消息并未包含在标记自身内。


var map;
function initialize() {
  var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
  var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  // Add 5 markers to the map at random locations
  var southWest = new google.maps.LatLng(-31.203405,125.244141);
  var northEast = new google.maps.LatLng(-25.363882,131.044922);
  var bounds = new google.maps.LatLngBounds(southWest,northEast);
  map.fitBounds(bounds);
  var lngSpan = northEast.lng() - southWest.lng();
  var latSpan = northEast.lat() - southWest.lat();
  for (var i = 0; i < 5; i++) {
    var location = new google.maps.LatLng(southWest.lat() + latSpan * Math.random(),
        southWest.lng() + lngSpan * Math.random());
    var marker = new google.maps.Marker({
        position: location, 
        map: map
    });
    var j = i + 1;
    marker.setTitle(j.toString());
    attachSecretMessage(marker, i);
  }
}

// The five markers show a secret message when clicked
// but that message is not within the marker's instance data

function attachSecretMessage(marker, number) {
  var message = ["This","is","the","secret","message"];
  var infowindow = new google.maps.InfoWindow(
      { content: message[number],
        size: new google.maps.Size(50,50)
      });
  google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
  });
}
 
google api  V3 事件

 

分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    javax.swing.event 供 Swing 组件触发的事件使用。 javax.swing.filechooser 包含 JFileChooser 组件使用的类和接口。 javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 ...

    matlab开发-单个事件侦听器和Matlabui的SimulinksignalView

    在MATLAB开发中,事件侦听器是一种强大的工具,它允许程序对特定事件做出响应,例如数据更改或用户交互。本教程重点介绍了如何利用单个事件侦听器以及MATLAB UI(用户界面)中的Simulink Signal Viewer来增强模型的...

    FLASH高级编程视频教程-63.使用事件侦听器.rar

    众所周知,世界上97%的台式机上都安装有Flash Player,利用包含...在这里我们主要讲解关于Flash CS3 的一些基本功能和简单的图像制作实例,希望对大家有所帮助!在这里学院感谢金鹰教程网的刘前进老师提供的视频教程。

    jsp中servlet过滤器和侦听器

    侦听器是用于监听特定事件的组件,当事件发生时,它们会自动执行相应的操作。例如,用户登录、会话创建或销毁等。常见的侦听器包括: - `HttpSessionListener`: 监听会话的创建和销毁。 - `ServletRequestListener`:...

    windowsAPI(waveform)实现侦听功能

    在Windows API中,"waveform"通常指的是Waveform Audio Interface,它是Microsoft Windows操作系统提供的一组用于处理音频输入和输出的函数。本知识点将详细介绍如何利用Windows API中的waveInOpen等函数来实现...

    Dojo基础2事件侦听器

    在Dojo中,事件处理机制是核心功能之一,它使得开发者能有效地响应用户的交互。本篇将深入探讨Dojo的基础事件侦听器以及发布/预定通信机制。 首先,我们来看一下Dojo如何标准化事件和键盘处理。Dojo遵循W3C的事件...

    自定义事件侦听器

    在编程领域,事件监听是软件系统中一个非常重要的设计模式,尤其在Java中,它被广泛应用在GUI(图形用户界面)编程、多线程通信、框架设计...在实际开发中,理解和掌握自定义事件侦听器的创建和使用是非常关键的技能。

    第六节 事件侦听.docx

    在本节中,我们将深入探讨事件侦听的概念及其在编程中的应用。事件侦听是ActionScript(特别是Flash和Flex)中一个重要的交互处理机制。它允许我们对用户的行为或者对象的状态变化做出响应,例如,当用户点击一个...

    javascript事件侦听器

    JavaScript事件侦听器是JavaScript中处理用户交互或DOM(文档对象模型)变化的关键机制。它允许程序员注册回调函数,以便当特定的事件发生时,这些函数会被调用。事件可以是用户的行为,如点击按钮、鼠标移动,或者...

    AS2中的侦听器

    在AS2(ActionScript 2.0)中,事件处理是动态交互系统的重要组成部分,而事件侦听器是实现这一机制的关键。事件侦听器允许我们响应特定的事件,如用户点击、对象加载等,而无需不断检查这些事件是否已经发生,这与...

    非常小且简单的工具类用于将事件侦听器绑定到元素

    在JavaScript开发中,事件侦听器是用于处理用户或浏览器行为的关键组件。它们允许我们对网页元素进行交互,如点击按钮、提交表单或者滚动页面等。标题提到的"非常小且简单的工具类用于将事件侦听器绑定到元素",意味...

    Java理论与实践:做个好的(事件)侦听器

    本文介绍了AWT 和Swing组件使用观察者模式消除了GUI事件生成与它们在指定应用程序中的语义之间的耦合。类似地,Swing 的模型类,也使用观察者消除数据模型表示 与视图生成之间的耦合,从而支持相同数据的多个独立的...

    多线程 TCIIP 侦听器

    总的来说,多线程TCP/IP侦听器在VB.NET中的实现涉及到网络编程、线程管理和并发处理等多个知识点。理解并掌握这些概念对于开发高效、可扩展的网络服务至关重要。在实际项目中,我们还需要考虑错误处理、资源管理、...

    学习如何在事件驱动的JavaScript API中自动侦听并查找错误模式_Learning how to listen Auto

    在事件驱动的JavaScript API中,自动侦听和查找错误模式是一项关键技能,这对于确保应用程序的稳定性和可靠性至关重要。JavaScript作为一种广泛使用的开发语言,不仅在前端处理用户界面(UI)事件和AJAX请求方面发挥...

    vue-api离线文档详解.rar

    在"vue-api离线文档详解"中,我们可以深入理解以下关键知识点: 1. **Vue实例**:Vue的核心在于创建一个Vue实例,它是所有数据和方法的容器。实例化时可以传递选项对象,包括数据、模板、挂载元素等。 2. **数据...

    多线程 TCP/IP 侦听器

    通过上述介绍,我们了解了多线程TCP/IP侦听器在VB.NET中的实现方式及其工作原理。实际开发中,开发者可以根据具体需求调整和优化代码,以构建高效稳定的服务器应用程序。提供的"代码中国.txt"可能包含了具体的VB.NET...

    TCPServer_等待tcp侦听器_TcpServer_islandqdt_everyvom_

    4. **TcpServer实现**:在编程中,创建TCP服务器通常涉及使用特定的API或库。例如,在Python中,可以使用socket模块来创建服务器;在Java中,可以使用ServerSocket类。这些库提供了创建、监听、接受连接和数据交换的...

    Servlet上下文和侦听器

    Servlet上下文和侦听器

    串口侦听器

    可将每一次侦听任务过程中的所有数据导出为单一的会话文件文件供日后导入分析使用,也可以 将每个视图窗口的内容导出为RTF标准格式文档以及普通文本,为用户在多种场合下使用数据提供了方便。 &lt;br&gt;SerialTrace还...

    vu3 事件侦听和抛送模式

    在这里,你可以使用`ref`或`reactive`创建响应式数据,并在`onMounted`, `onBeforeUnmount`等生命周期钩子中设置事件监听器。 3. **自定义事件(Custom Events)**: 自定义事件是跨组件通信的重要手段。通过在...

Global site tag (gtag.js) - Google Analytics