Javascript 中嵌套函数的返回值[重复]

2024-03-22

我有一个设置如下的函数

function mainFunction() {
      function subFunction() {
            var str = "foo";
            return str;
      }
}

var test = mainFunction();
alert(test);

按照我的逻辑,该警报应该返回“foo”,但它返回未定义。我究竟做错了什么?

UPDATE:这是我的实际代码(它是使用 Google API 进行反向地理编码的函数)

function reverseGeocode(latitude,longitude){
    var address = "";
    var country = "";
    var countrycode = "";
    var locality = "";

    var geocoder = new GClientGeocoder();
    var latlng = new GLatLng(latitude, longitude);

     return geocoder.getLocations(latlng, function(addresses) {
     address = addresses.Placemark[0].address;
     country = addresses.Placemark[0].AddressDetails.Country.CountryName;
     countrycode = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
     locality = addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
     return country;
    });   
   }

你必须先调用一个函数,然后它才能返回任何内容。

function mainFunction() {
      function subFunction() {
            var str = "foo";
            return str;
      }
      return subFunction();
}

var test = mainFunction();
alert(test);

Or:

function mainFunction() {
      function subFunction() {
            var str = "foo";
            return str;
      }
      return subFunction;
}

var test = mainFunction();
alert( test() );

对于您的实际代码。返回应该在主函数之外。回调在内部某处被调用getLocations方法,因此它的返回值不会在您的主函数中收到。

function reverseGeocode(latitude,longitude){
    var address = "";
    var country = "";
    var countrycode = "";
    var locality = "";

    var geocoder = new GClientGeocoder();
    var latlng = new GLatLng(latitude, longitude);

    geocoder.getLocations(latlng, function(addresses) {
     address = addresses.Placemark[0].address;
     country = addresses.Placemark[0].AddressDetails.Country.CountryName;
     countrycode = addresses.Placemark[0].AddressDetails.Country.CountryNameCode;
     locality = addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
    });   
    return country
   }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 中嵌套函数的返回值[重复] 的相关文章

  • 滚动时输入自动完成位置错误(chrome)

    我在输入文本的默认自动完成功能方面遇到了一些麻烦 滚动时它不会相应移动 我希望自动完成文本保留在输入的正下方 有办法做到这一点吗 我在 Chrome 浏览器版本 57 0 2987 133 中发生这种情况 fiddle https jsfi
  • 无法在 JavaScript for 循环中读取 null 的属性“长度”

    我正在尝试制作一个像 Stack Overflow 那样的 Markdown 编辑器 如果我实际上没有在文本区域中键入星号和包含短语的 http 我会收到标题中列出的此错误 如果我只输入包含星号的短语 则错误指的是这一行 if linkif
  • pubnub 和 head.js

    有没有人成功整合过pubnub http www pubnub com 和 head js 正确吗 Pubnub http www pubnub com 希望我将他们的脚本放在页面底部并带有 div 就在它前面的标签 这可以确保在最后调用
  • Javascript DOM setAttribute 在函数调用中不起作用

    我有一个带有输入元素的 HTML 文件 我希望向其中添加一个名为 valid fieldset011 的新属性 该属性用作 AngularJS 验证器的链接 输入元素具有属性 id fieldset011 如果我使用以下脚本 包含在脚本标签
  • Angular 2 Material 2 日期选择器日期格式

    我不知道如何更改材料2日期选择器的日期格式 我已阅读文档 但我不明白我实际上需要做什么 datepicker默认提供的输出日期格式为f e 6 9 2017 我想要实现的目标是将格式更改为类似的格式9 Jun 2017或任何其他 文档htt
  • ajaxStop() 不触发

    这是不起作用的代码 document ajaxStop function this unbind ajaxStop prevent running again when other calls finish Display everythi
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • 在鼠标光标位置添加 cytoscape 节点

    我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点 我怎样才能做到这一点 我的方法 效果不太好 我可以通过单击创建一个节点 但无法确保创建的节点的位置位于我单击的位置 使用这样的东西 cy click function
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 有没有办法将变量从 javascript 导入到 sass 或反之亦然?

    我正在制作一个依赖于块概念的 CSS 网格系统 所以我有一个基本文件 例如 max columns 4 block width 220px block height 150px block margin 10px 它被 mixin 使用 m
  • 在 Fabric.js 中按宽度/高度在另一个画布对象内居中和缩放画布对象

    Goal 将一个对象 水平和垂直 置于另一个对象 矩形或组 的中心canvas via Fabric js或者通过Javascript保持原始对象的长宽比相同 但也不超过父对象的宽度 高度比例 父对象 矩形或组 不会居中于canvas元素
  • Google 地图 API:忽略 DirectionService 请求中的季节性限制

    我目前正在开发一张地图 其中显示两点之间的最短路线 使用不同的交通工具 我注意到 有时 例如在冬季关闭的道路不会被考虑在内 我发现我可以使用方向服务 下面的代码 忽略高速公路 收费站和渡轮 但我一生都无法弄清楚如何 是否可以忽略季节性限制
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 使用 AngularJS 多部分表单数据将文件上传到 Google Cloud Storage

    我正在尝试使用 AngularJS 中指定的多部分方法将图像文件上传到 Google Cloud Storagehttps cloud google com storage docs json api v1 how tos upload m
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定

随机推荐

  • JHipster 微服务 CORS

    有没有一种方法可以通过网关访问微服务API而无需身份验证 例如 如果我有一个公共登录页面需要从微服务 API 读取数据 我启用了 CORS 并通过 Swagger 测试了 API 它在网关应用程序中运行良好 但是 如果我使用 CURL 调用
  • 在 C# 中(可能在不安全模式下)读取锁定文件的侵入性最小的方法是什么?

    我需要读取可能被锁定的 Windows 文件 但我不想创建任何类型的锁来阻止其他进程写入该文件 另外 即使文件被锁定为独占使用 我也想看看里面有什么 尽管这不是我的确切用例 但请考虑如何在使用和安装时读取 SQL Exchange 日志或数
  • 使用hibernate返回查询的计数值

    这是我的 mysql 查询 SELECT count FROM bw jobs WHERE year job date year curdate AND month job date month curdate 如何在休眠中使用它来获取计数
  • 构建带有复选标记的 NSOutline 视图

    我希望使用正确的 Apple 推荐方法向 NSOutlineview 添加复选框 但文档中尚不清楚 如何添加行为以允许用户如果单击父复选框 则它将选择子项 如果我单击它 它将取消选择该项目的子项 编辑 我简化了我的问题并添加了图像以使其更清
  • 如何从 DragEventArgs 确定数据类型

    我已经在我的应用程序中实现了拖放 但在确定被拖动对象的类型时遇到一些困难 我有一个基类Indicator以及从它派生的几个类 拖动的对象可以是这些类型中的任何一种 下面的代码片段看起来不太优雅 并且容易出现维护问题 每次我们添加一个新的派生
  • 为什么首先调用 ShowWindow()?

    首先需要注意的是 我最近才开始学习 WinAPI 我确信这个问题以前已经被问过很多次了 但由于某种原因我在网上找不到它 问题很简单 为什么要费心最初的电话ShowWindow 在体内WinMain 在消息循环执行之前 为什么不简单地通过使用
  • 如何找出 C++ 警告的数量

    我已开启 Wall在我的代码中消除所有警告 然而 有些我想在代码中允许 所以我在代码中禁用这些 在常见的问题中 我可以轻松地在 Google 中找到警告编号并禁用它们 例如 pragma warning disable 4127 但有些 我
  • PyCharm 和外部工具过滤器

    我正在尝试使用 PyCharm 进行 Django 开发 到目前为止我非常高兴 我的团队严格遵循 PEP8 格式 并使用 pep8 命令行程序进行检查以确保我们的代码符合要求 我已经配置了一个外部工具命令来运行 pep8 并且运行良好 我看
  • gsutil:仅列出目录(错误?)

    gsutil ls d gs XXX test gs XXX test gs XXX test 336x280 swf gz 所以它不仅列出目录 以 以及常规文件 以 gz例如 但据我了解 这个命令应该只列出目录 错误在哪里 gsutil
  • 使用 Twitter Bootstrap 导航栏进行导航的正确方法是什么?

    我正在使用 Twitter Bootstrap 3 创建一个网页 我使用导航栏的直觉是让每个项目导航到新的 href 然而 我见过以不同的方式处理这个问题 有些页面确实导航到新的 href 并触发页面加载 可能使用某种模板在所有 html
  • Html Agility - 将解析保存到字符串

    刚刚第一次尝试使用 Html Agility Pack 并遇到了问题 首先 我从字符串变量加载 string NewsText dr Message ToString HtmlAgilityPack HtmlDocument htmlDoc
  • 如何创建堆积线图

    在 R 中创建堆积条形图有多种解决方案 但如何绘制堆积线图呢 可以使用以下命令创建堆积线图ggplot2包裹 一些示例数据 set seed 11 df lt data frame a rlnorm 30 b 1 10 c rep LETT
  • 当报告需要很长时间运行时,如何解决套接字关闭的问题?

    我正在运行用 iReport 制作的 Clarity 报告 我的一份报告非常复杂 有时需要很长时间才能运行 取决于参数 有时 花了太长时间 我收到一条消息说 插座关闭 当报表快速运行时 不会出现此消息 我认为这意味着运行已超时 我目前正在努
  • 单元测试应该如何处理预期和意外的异常?

    当预期的异常发生时 它是否应该通过测试 当出现意外异常时 测试是否会失败 处理异常是否多余 因为它会使测试失败并因此充当测试 测试预期的异常 你必须添加expected属性具有预期的异常 因此如果抛出指定的异常 测试将通过 否则就会失败 例
  • 逐行编写 Lua 脚本

    我使用以下命令将 Lua 脚本添加到我的 C 应用程序中动态Lua http dynamiclua codeplex com 图书馆 它运作得很好 我想实现您获取正在执行的当前行 就像在 Visual Studio 中一样 并突出显示它 目
  • 将 opencv BackgroundSubtractorMOG 保存到文件吗?

    我使用 opencv 进行车辆计数过程 如何将我的BackgroundSubtractorMOG对象 例如BackgroundSubtractorMOG2等 保存到文件中 以便我可以从文件中读取它 再次使用经过训练的背景模型而无需长时间训练
  • Alphablend 和透明Blt

    这个问题与我有关先前的问题 https stackoverflow com q 12700165 62576 on SO 我想组合两个图层 并仅将 alpha 应用于源图层的特定部分 我尝试的一种方法是将 SourceConstantAlp
  • 从服务器的标头中获取标头令牌

    我如何更改代码才能获取令牌 因为它始终为空 控制台不会返回任何错误 并且在邮递员 应用程序 中服务器端正常工作 我在服务器端有这段代码 router post async req res gt const error validate re
  • 如何在TableLayout周围添加边框?

    下面是我的表代码 我的屏幕看起来像这样https i stack imgur com U5ppn jpg https i stack imgur com U5ppn jpg但我想让它看起来像这样https i stack imgur com
  • Javascript 中嵌套函数的返回值[重复]

    这个问题在这里已经有答案了 我有一个设置如下的函数 function mainFunction function subFunction var str foo return str var test mainFunction alert