JavaScript作用域问题

2024-04-22

我正在调用此函数,将结果分配给回调中的变量,然后记录结果,但我一直未定义。

var id;
test.getID(function(result) {
    id=result;
});
console.log(id);

如果我将其更改为下面的代码,那么我可以看到记录的 id。

var id;
test.getID(function(result) {
    id=result;   
    console.log(id);
});

您知道我可以做什么才能访问 getID 函数的结果吗?


The getID函数需要调用它的参数才能看到id change.

由于您没有提供其实现,因此我们假设它是这样的。狠抓落实getID,它以一个函数作为参数,f,然后调用它。这是当id将被设置。

var id;
var test = { 
    getID: function(f){
        var result = 666; //assume result comes from somewhere
        f(result); //Note: this is where your function is getting invoked.
    }
};

test.getID(function(result) {
    id = result;
});

console.log(id); //prints 666
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript作用域问题 的相关文章

随机推荐

  • 如何在 Xamarin.Forms 中设置不透明度动画

    我想知道如何对屏幕上可见元素的不透明度进行动画处理 例如 对于 Entry 我得到了这个 this Animate d gt Debug WriteLine anim d Username Opacity AnimationTime d A
  • 没有这样的方法错误:ImmutableList.copyOf()

    我正在使用 Guava 05 snapshot 和 Sun 的 JDK 1 6 执行此代码片段时 代码会崩溃 List
  • 在没有 UI 导航器控件的 uiviewcontroller 之间切换

    我想以编程方式在 2 个 UIViewController 类之间切换 而不需要任何额外的 UI 控制 例如向应用程序添加 UI 的 UITabBarController 我的 main 使用 addSubView 加载第一个视图控制器 v
  • Scala 的反射 API

    有谁知道 Scala 的全功能反射 API 的状态吗 我知道您可以使用 Java 的反射 API 来做简单的事情 但这不适用于 Scala 的语言功能 我找到了一个有趣的文章 http lamp epfl ch teaching proje
  • 相当于 Cocoa 中的 FileSystemWatcher (.NET)

    我正在 Cocoa 中开发一个应用程序 我想不断检查特定位置的文件内容是否已更改 例如FileSystemWatcher在 NET中 请任何人给我一个解决方案 请看一下FSEvents http developer apple com do
  • CLR 使用实体框架检测到无效程序

    我正在从 wordpress 数据库中检索数据 该数据库将主键定义为decimal我在项目中使用 x64 配置 我搜索了一下发现这就是问题所在 但我找不到解决方案 我需要做什么 下载才能使用decimal作为主键 Microsoft Con
  • 在 IntelliJ IDEA 中运行 Jest 测试

    我创建了一个 React 应用程序create react app版本 1 4 0 并在 IntelliJ 中打开生成的项目 现在我也尝试在 IntelliJ 中运行生成的测试 当我这样做时 我得到以下输出 usr bin node hom
  • Angular-Formly:隐藏/禁用服务字段

    我有一项服务 其中我尝试禁用角度形式字段 formField templateOptions disabled true 即使 templateOption 对象是正确的 该字段也不会被禁用 templateOptions type tex
  • Lambda 表达式中的 OrderBy 降序排列?

    我知道在正常的 Linq 语法中 orderby xxx descending很简单 但是如何在 Lambda 表达式中做到这一点呢 正如布兰农所说 这是OrderByDescending http msdn microsoft com e
  • Visual Studio 中的解决方案文件夹是什么?

    我有一个 Visual Studio 2008 解决方案 我想在解决方案中包含一个真实的文件夹 但不是在项目级别 而是在解决方案级别 我注意到您可以右键单击该解决方案并添加一个解决方案文件夹 但它显示为一些白色文件夹 我怀疑它到底应该是什么
  • Swift 中 CGImage 的 RGB 数据

    我尝试过培养阅读能力RGB 像素数据 https stackoverflow com questions 6073259 getting rgb pixel data from cgimage在斯威夫特 获取基本图像信息没有问题 但我认为指
  • 将系列列表传递给 SetSeries

    我将 DotNet Highcharts 与 Visual Studio 2010 结合使用 我创建了一个系列数组 List
  • {} while(0) 在宏中如何工作?

    尽管这个话题已经在本论坛和所有其他论坛上讨论过很多次 但我仍然心存疑虑 请帮忙 如何do while 0 Linux内核中的宏工作 例如 define preempt disable do while 0 它如何禁用抢占 define mi
  • 尝试使用 Razor 引擎解析模板时,程序集“mscorlib”中的“System.Security.Principal.WindowsImpersonationContext”错误

    我必须创建一个能够发送电子邮件的 Asp Net Web Api 我成功发送了电子邮件 但仅使用存储在本地变量中的简单模板 下一步是从外部文件渲染模板 如下所示 string filePath C Data EmailClient Emai
  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • 使用 RCurl 登录 mediawiki

    我如何使用 RCurl 或 Curl 我可以将其适应 R 包 登录到 mediawiki 我只想解析一个页面 但我需要登录 否则我无法访问它 Mediawiki API 有一个登录函数 它返回 cookie 和令牌 您必须保存并将两者发送回
  • mscordacwks.dll 和 mscorwks.dll 混淆

    mscordacwks dll 和 mscorwks dll 在 Net Framework 运行时 构建和调试过程中执行哪些不同的功能 有关于这个主题的推荐读物吗 我已经搜索了很长一段时间但失败了 提前致谢 乔治 mscorwks 是主要
  • 如何在 Node.js 中使用模板(把手或任何替代方案)而不使用框架(ex = express)?

    例如 我有这个 JSON 文档 foo json foo bar Hello World bar The End 在 Node js 中 我想使用模板 handlebars 或任何模板 从 JSON 文档生成字符串 例如 p Hello W
  • 连接 WCF 客户端缓存?

    我的应用程序使用客户端企业缓存 我想避免为每个可缓存调用编写代码 并想知道是否有一种解决方案可以缓存 WCF 客户端调用 即使对于异步调用也是如此 这可以通过 WCF 行为 或其他方式来完成吗 代码示例 前几天 我使用 WCF 服务客户端
  • JavaScript作用域问题

    我正在调用此函数 将结果分配给回调中的变量 然后记录结果 但我一直未定义 var id test getID function result id result console log id 如果我将其更改为下面的代码 那么我可以看到记录的