繁体   English   中英

在Javascript中的另一个函数中调用一个函数

[英]Calling a function within another function in Javascript

我已经阅读了一些有关此的答案,但似乎没有什么用。

我在React-Redux-Google Maps项目中有一个模块,该模块导出如下函数:

export default function(google, map, store) {
  // Main module functionality
}

此函数导入到我的initMap模块中,并通过googlemapstore调用。 因此,该功能能够与地图进行交互,例如创建Google Maps标记,折线等。

在此函数中,我创建了一个辅助函数来清除地图。 我可以通过引用渲染对象并调用其方法.setMap(null)来做到这一点(根据Google Maps API文档)。 但是,我想导出该辅助函数,以便可以将其导入到我的React组件中并将其绑定到onClick处理程序。

我知道我无法从导出的函数中导出辅助函数。 我也不能直接调用辅助函数。 我也不能将helper函数带到main函数之外(即它们在同一作用域内),因为它随后将无法访问googlemapstore变量。

我认为唯一可行的解​​决方案是重组主函数(默认导出)以返回对象:

{
  main: main,
  helper: helper
}

其中main和helper是子功能。 这样,两个子功能都可以访问googlemapstore变量,这些变量将在范围内。

即:

export default function(google, map, store) {
  function main() {
    // Main module functionality
  }

  function helper() {
    // Helper module functionality
  }

  return {
    main: main,
    helper: helper
  };
}

这是可行/不好的做法吗?

如果这两个功能不是紧密相关的,则将这些功能存储在不同的文件中并同时导入两者更加有意义。

如果它们之间的关系更紧密(在这里似乎是这种情况),则可以将它们存储为类的静态方法,然后导出该类。 此选项有助于将相关功能组织到帮助程序类的方法中,并且可以轻松完成工作。

export default class {
  static main() {
    // Main module functionality
  }

  static helper() {
    // Helper module functionality
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM