如何在javascript中调用同一函数内部和外部的函数

2023-12-26

我想在同一个函数内部和外部调用一个函数。在 JavaScript 中是如何实现的?

Js:

someFunction(function repeat(result) {
    document.body.innerHTML += '<br>' + result.winner;
    if (result.winner) {
        someFunction(repeat);
    }
});
someFunction.repeat();

var someFunction = function( callback ) {
  // Do some things that belong to someFunction, like creating the result object.
  var result = {
    winner: true
  };
  // Call the repeat function, using the result as the parameter.
  callback( result );
};
var endless_loop_protection = 0;
var repeat = function( result ) {
  // Write the result somewhere
  console.log( result.winner + ': ' + endless_loop_protection );
  // faking the if clauses that prevent the endless loop.
  endless_loop_protection += 1;
  if ( result.winner && endless_loop_protection < 10 ) {
    // Do everything again if there's still a winner in the result.
    someFunction( repeat );
  }
};
someFunction( repeat );

根据 someFunction 函数和重复函数内部的具体内容,这样的结构可能会更好:

var get_result = function() {
  // Create a random result.
  return {
    winner: Math.random() < 0.5
  };
};
// This will keep looping until get_result returns a result with winner = true.
// So the amount of times this will log is random each time you call it.
var handle_results_until_winner = function( get_result ) {
  var result = get_result();
  console.log( result.winner );
  if ( !result.winner ) handle_results_until_winner( get_result );
};
handle_results_until_winner( get_result );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在javascript中调用同一函数内部和外部的函数 的相关文章

  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • JavaScript 中的 ParseFloat 函数

    当我添加两个文本框值时1 001 and 0 001然后我做了一个parseFloat I get 1 0019999999 我要它1 002 你能帮助我吗 JavaScriptNumber http www w3schools com j
  • 匹配CSS的正则表达式“<属性>:<值>”

    我从以下位置检索了 CSS 规则document styleSheets现在我正在寻找提取它的属性和值 cssText expl position absolute background color rgb 204 204 204 max
  • 单击元素外部时触发事件的指令

    我知道有很多问题都在问类似的事情 但没有人真正解决我的问题 我正在尝试构建一个指令 当鼠标单击当前元素外部时 该指令将执行表达式 为什么我需要这个功能 我正在构建一个应用程序 在这个应用程序中 有 3 个下拉菜单 5 个下拉列表 如选择的
  • HTML5 Audio Element 无法在 IOS 11 设备上的 safari 中播放 mp3 直播

    我是一家广播公司的网络开发人员 自 iOS 11 发布以来 我们收到了一些用户投诉 称我们的音频直播流无法再在 IOS 11 设备上播放 为了将流嵌入我们的网站 我们使用 HTML5 AudioElement 在 iOS 11 的 iPho
  • Antd datepicker (date.clone/date.load 不是函数)

    我有一个反应应用程序 有一个复选框可以禁用日期选择器 但当我使用复选框禁用它时 我无法选择任何日期 如果我删除复选框及其功能 则不会出现错误 目前 我得到 date clone 不是函数 error const dateFormat YYY
  • 如何查明在 Chrome 控制台中按下按钮时会调用哪些函数?

    我正在尝试自学 Google Closure javascript 库 我正在检查 TreeControl UI 小部件 如何使用Chrome控制台分析当我点击下面演示中的 剪切 按钮时运行了哪些功能 例如 我可以为此设置一个断点吗 我尝试
  • d3 序数尺度的映射

    我正在使用 D3 的序数比例将数字映射到颜色 我用过这个 color d3 scale ordinal range 1f77b4 ff7f0e 2ca02c d62728 9467bd 8c564b e377c2 domain 0 6 co
  • 在 Jscript 中实例化 System.Threading.Thread 对象

    我正在尝试使用 Jscript 创建一个新的 System Threading Thread 对象 但我无法让构造函数工作 如果我只是执行以下操作 var thread new Thread threadFunc function thre
  • PHP:在执行 php 脚本时显示“正在加载”页面

    这就是我现在所拥有的 我有一个网页 当访问该网页时 它会通过开放 API 连接到 Surveygizmo com 检索大量数据 然后将这些数据返回给我进行处理 此过程大约需要 10 12 秒 在执行时 页面只是处于 正在加载 状态 并且我会
  • LINQ SingleOrDefault() 等效项

    在 Typescript 中 我经常使用这种模式 class Vegetable constructor public id number public name string var vegetable array new Array
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 如何列出特定服务器的所有成员?

    我的代码是 const list client guilds find id 335507048017952771 for user of list users console log user 1 username 这实际上没有任何作用
  • EaselJS Alpha 遮罩滤镜

    我对 Canvas 还很陌生 我一直在尝试将图像颠倒过来EaselJS Alpha 蒙版 http www createjs com demos easeljs alphamaskreveal示例 以便初始图像清晰 并且您可以paint是模
  • 如何实现 chromecast 对 html5 播放器的支持

    我使用js和html5设计了一个具有一些自定义功能的html5播放器 现在我需要在html5播放器上添加chromecast选项 例如https raw githubusercontent com kim company videojs c
  • 掩码输入数字 - 百分比

    如何通过 jQuery 创建具有百分比的数字掩码输入 我是否让输入仅接受三个数字 并在用户完成输入时在数字后添加百分号 keyup 我不使用插件 例子 1 Or 30 Or 99 Or 100 Or 200
  • Chrome 和 IE 上的滚动/延迟事件

    我试图让用户始终看到一个内容块 即使他向下滚动页面也是如此 他还应该能够上下滚动内容块 这是一个精简版本的小提琴 向您展示我的意思 http jsfiddle net 9ehfV 2 http jsfiddle net 9ehfV 2 人们
  • 显示对象内容 - JS/jQuery

    With this data events 返回 object Object 我需要看看里面到底发生了什么 我找到了这个 var Finder each this data events function i n Finder Name i
  • 如何选中表格中输入文本焦点上的复选框

    我试图在输入文本焦点上检查表 DOM 中的复选框 但无法访问复选框元素 但我的焦点正在工作 这是我的 jsfiddle 链接https jsfiddle net 9qha9vft https jsfiddle net 9qha9vft 这是
  • JavaScript:如何在 Internet Explorer 中模拟更改事件(委托)

    UPDATE 回顾 小提琴和赏金 这个问题并没有引起太多关注 所以我将花一些时间来解决这个问题 我知道我的答案和问题都过于冗长 这就是为什么我继续设置这把小提琴 http jsfiddle net vVA8N 在我看来 这是我目前必须用来接

随机推荐

  • 使用 trie 的 Python 拼写检查器

    我正在尝试使用 trie 数据结构实现拼写检查器 我目前有以下大纲Node class Node def init self self next self word marker False def add item self string
  • 将数据从一张纸复制到另一张纸的最后一行

    我正在尝试将数据从一张纸复制到另一张纸的最后一行 我这样做的原因是因为我想将数据合并到已经存在的工作表中并且我已经包含数据 下面是我到目前为止的代码 它只再次复制到另一张纸的 A2 上 为此我应该采取什么方法 Sub Upload Dim
  • 线程安全的保留/释放

    我有一个可以从多个后台线程 可能同时 访问的类 我无法复制该类 因为重新创建它的内容 处理或内存方面 可能会很昂贵 当后台处理仍在进行并访问该属性时 该类的属性也可能被替换 目前我有定期的保留 释放 但似乎情况 至少在 iOS 4 上 这些
  • UITableView - 我可以跨越多行或使用嵌套 UITableView 吗?

    我基本上正在尝试实现以下可滚动布局 并正在寻找一些关于实现它的最佳方法的建议 潜在的解决方案可能是 嵌套 UITableView 我考虑过将所有 A 组件放在父 UITableView 中的单行中 并将行 A1 A2 和 A3 放在子 UI
  • 通过传递纬度和经度打开 Apple 地图

    当用户单击链接时 我尝试在 PhoneGap 应用程序中打开 Apple 地图 Apple文档中的URL方案是这样的http maps apple com maps ll 51 83733 8 3016 如果存在 Apple 地图 则会打开
  • 如何将 dzi 文件转换为多瓦金字塔 tiff 格式

    参考答案 如何将 dzi 深度变焦 文件转换为完整图像 https stackoverflow com questions 53986084 how to convert dzi deep zoom files to full image
  • 静态函数的 DLL 导出

    我有以下静态函数 static inline HandVal StdDeck StdRules EVAL N StdDeck CardMask cards int n cards 我可以将此函数导出到 DLL 中吗 如果是这样 怎么办 Th
  • 在列表理解或生成器表达式中使用 while

    我可以用if and for在列表推导式 生成器表达式中为 list i for i in range 100 if i i lt 30 我知道这不是最有效的 但请耐心等待 因为情况可能要复杂得多 这只是一个例子 然而 这仍然会经历数百次迭
  • 复制 php 变量对性能的影响

    只是想知道复制非常大的 php 变量对性能的影响 例如 arr 是一个巨大的数组 如果我这样做 arr2 arr 这是一个深拷贝还是 arr2 只是像 Java 中那样指向 arr 的指针 提前致谢 arr2 arr创建深层副本 但实际的复
  • Switch 语句始终包含 case 和 default

    当我编译这个程序时 它输出相应的 switch case 和默认标签内容 它唯一不打印的值是一月 任何帮助都会很棒 样本输入 4 示例输出 四月 错误 虽然我可以让程序变得更好 但我需要以这种特定的方式来实现 while month EOF
  • 什么时候使用“require-dev”?什么是常见的开发依赖项?

    虽然我熟悉了基础知识composer json并指定下的依赖关系requirekey我还不太明白其目的require dev Composer 的文档指出 要求开发 仅限 root http getcomposer org doc 04 s
  • XACML 义务

    我们如何使用 XACML 中的义务 任何参考都会有帮助 这种情况是义务应提交 PIP 并将结果返回给 PEP Thanks 作者评论中的示例
  • 关于新的 EF5 自动编译查询功能

    我对新的 EF5 自动编译查询功能进行了一些测试 问题是我没有看到性能有任何差异 我使用 NET 4 0 和 EF4 0 制作了一个项目 但没有使用编译查询 我使用 NET 4 0 和 EF4 0 制作了另一个带有编译查询的项目 性能提高了
  • “位置:绝对”与 Flexbox 冲突吗?

    我想做一个div粘在屏幕顶部 不影响其他元素 其子元素位于中间 parent display flex justify content center position absolute div class parent div class
  • Android 自定义带有文本的后退按钮

    我希望在我的 Android 应用程序中有一个像我在 iOS 应用程序中那样的操作栏 不幸的是 我不知道如何制作仅包含文本的后退按钮以及如何将标题移动到中心 这将适用于整个应用程序 而不仅仅是一种布局 有人可以帮我吗 我找到了一个简单的解决
  • 使两个输入具有相同的数据值?

    我有两个输入 数字 如何将数据从第一个复制到第二个并返回 例如 我将在第一个输入中设置一些值 在第二个输入中设置相同的值 如果我在第二个输入中设置相同的值 我希望在第一个输入中获取相同的值 我想一定是这样的 div class first
  • 使用 Python 的三元运算符与 lambda 组合的意外输出

    我有一个特定的情况 我想执行以下操作 实际上比这更复杂 但我将问题简化为本质 gt gt gt lambda e 1 0 if lambda e True 0 else lambda e 2 0 True 这是一种困难的写作方式 gt gt
  • 关闭旧套接字后创建新套接字会导致连接被拒绝

    我是 android 编程新手 我正在尝试将程序从标准 java 移植到 android 这个java应用程序包含套接字 当我移植程序时 如果按下按钮太快 就会出现连接被拒绝的情况 我编写了一个简单的程序进行测试 Thread thread
  • Angular2 NgFor 在表达式中绑定数组

    ngfor 循环中使用的数组 当它更新时 如何让 Angular2 重新运行该表达式 目前它不会输出任何内容 因为它在开始时使用空数组运行 一旦更新 数组已更改 ngfor表达式就不会重新运行 这是所需的功能 这是怎么做到的 例如在 HTM
  • 如何在javascript中调用同一函数内部和外部的函数

    我想在同一个函数内部和外部调用一个函数 在 JavaScript 中是如何实现的 Js someFunction function repeat result document body innerHTML br result winner