正在调用内部函数Javascript

Calling internal function Javascript

本文关键字:Javascript 内部函数 调用      更新时间:2023-09-26

我正在尝试使用GoogleMap"initialize"函数中的一个函数。我有什么:

<script>
function initialize(){
  // initialization parameters
    function drop(){
      //code to drop a marker
    }
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>

然后,我有一个按钮来调用函数"drop()"。在GoogleMap教程中,我阅读了代码,调用如下:

<div id="panel" style="margin-left: -52px">
    <button id="drop" onclick="drop()">Drop Markers</button>
</div>

我有一个错误:drop()函数没有定义

我读过Javascript中的函数叠瓦,但我不知道如何实现这种调用。我发现了很多关于调用对象的内部函数的内容。这里只介绍函数到函数。

非常感谢您抽出时间回答这个问题。

不要使用内联处理程序。使用addEventListener代替

function initialize(){
  // initialization parameters
    function drop(){
      //code to drop a marker
    }
    //ta-da!
    document.getElementById('drop').addEventListener('click', drop);
}
google.maps.event.addDomListener(window, 'load', initialize);

HTML

<div id="panel" style="margin-left: -52px">
    <button id="drop">Drop Markers</button>
</div>

drop()是在initialize()作用域中定义的,因此无法从全局作用域访问。