JavaScript:如何将额外参数传递给回调[重复]

2024-01-27

我有一个问题困扰了我一段时间。

假设我有以下数组:

var array = [1, 2, 3]

现在我有一个与此类似的功能:

function print(num, str) {
    console.log(str + ": " + num);
}

是否可以调用 forEach 方法并向其传递一个字符串?

// how do I pass "str"?
array.forEach(print);

Thanks!


您在这里有两个选择:

要么交换参数,这样str首先。然后你可以使用function.bind绑定函数的第一个参数:

function print(str, num) {
    console.log(str + ": " + num);
}

array.forEach(print.bind(null, 'someStr'));

或者,您还可以创建一个新的(匿名)函数,它只需将一些值传递给第二个参数:

array.forEach(function (item) { print(item, 'someStr'); });

有了 ES6 和箭头函数,这甚至变得更漂亮了:

array.forEach(item => print(item, 'someStr'));

两种解决方案具有非常相似的效果,因为它们创建一个新的函数对象,然后将其传递给forEach。什么对您更有意义取决于您的用例。

正如注释所示:您只需要记住回调传递给forEach实际上最多需要三个参数(项目、项目的索引和数组本身),因此在传递接受其他附加参数的函数时要小心。您可以再次使用本地函数来解决这个问题。

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

JavaScript:如何将额外参数传递给回调[重复] 的相关文章

  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • 在 contenteditable div 中选择范围

    我有一个contenteditablediv 和其中的一些段落 这是我的代码 div style border solid 1px black width 300px height 300px div Hello world div div
  • 渲染货币和符号并与来自不同单元格的数据相结合

    我正在使用最新的 jQuery DataTables v1 10 7 我正在尝试将数字解析为以下格式 239 90 USD 我可以使用此命令使货币正常工作 columns data Price render fn dataTable ren
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 闭包作为数据合并习惯的解决方案

    我正在尝试解决闭包问题 而且我think我发现了一个案例 他们可能会有所帮助 我有以下几部分需要处理 一组正则表达式 旨在清理状态名称 位于函数中 具有州名称 上述函数创建的标准化形式 和州 ID 代码的 data frame 用于链接两者
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar

随机推荐

  • 在 C# 中缓冲字节数据

    我的应用程序从 TCP 套接字读取字节并需要缓冲它们 以便我稍后可以从中提取消息 由于 TCP 的性质 我可能会在一次读取中获得部分或多个消息 因此每次读取后我想检查缓冲区并提取尽可能多的可用完整消息 因此 我想要一个允许我执行以下操作的类
  • User.Identity.GetUserId() 方法在 Web Api 2 控制器中不起作用

    在常规控制器中 以下代码有效 HttpPost public ActionResult Custom string name User Identity GetUserName string id User Identity GetUser
  • 如何通过 for 循环从 C 函数返回表的表到 Lua

    我有一个std list对象 我想给 Lua 一个返回其多维位置的函数 所以我需要创建一个表的表 1 2 3 512 1 2 3 512 512 lua newtable L for int i 0 i lt 512 i lua newta
  • C 中的 HTTP 堆栈

    有没有用C实现的HTTP协议栈 提前致谢 更新 寻找客户端实现 你没有说你是在寻找客户端还是服务器 但很快谷歌就出现了libmicrohttpd http www gnu org software libmicrohttpd 用于在您的应用
  • 如何使用 Google 云端硬盘 API 密钥从 Android 应用程序访问云端硬盘内容?

    我无法访问 Google 云端硬盘 我在 Google API 控制台中创建了一个 API KEY 并启用了 Google Drive API 和 SDK 我在代码中的哪里设置 API KEY 驱动器生成器没有setJsonHttpRequ
  • cassandra中的主键是唯一的吗?

    这可能有点蹩脚 但在 cassandra 中主键是唯一的吗 例如下表中 CREATE TABLE users name text surname text age int adress text PRIMARY KEY name surna
  • .Net core 中 Json() 的小写属性名称

    有类 ClientViewModel public class Result public long PKID get set public string Name get set 并有 post 方法返回此模型 HttpPost publ
  • 如何让一个函数每 10 分钟在服务中运行一次?

    我有一个正在运行的 Windows 服务 在其中我想每隔几分钟运行一个函数 我找到了一些代码 但它似乎不起作用 我有一个记录器 它似乎没有进入过timer Elapsed 函数 protected override void OnStart
  • 阻止加载混合活动内容

    我在控制台中收到这些警告 但我的脚本无法正常工作 阻止加载混合活动内容 http code jquery com ui 1 10 3 themes smoothness jquery ui css http code jquery com
  • 如何获取 Flutter App 的编译/构建日期?

    我知道如何使用获取版本包信息 https pub dartlang org packages package info 但是如何在 ios 和 android 上获取运行时的构建时间戳 您可以使用构建 shell 脚本来创建 更新 Dart
  • 从 SetUpFixture 将参数传递给 TestFixture OneTimeSetUp

    我目前正在使用 C 构建一个自动化项目 nunit和 Selenium 我试图有一个安装类 它将在任何之前初始化 selenium webdriverTestFixture将运行并在所有这些都结束后尝试从TestFixture每一个Test
  • 无法理解 freeCodeCamp 中的 JS 递归倒计时函数

    所以 我已经明白了ideaJavaScript 中的递归 有一个功能是loops itself直到达到base条件 此时它停止并且返回最终结果 但是当我将其应用于尝试将其应用于的实际语法时 我有点头疼创建数组 让我们使用freeCodeCa
  • 更改 ApacheDS 中的默认管理员密码

    我是 ApacheDS 新手 我正在使用 apacheds 2 0 0 M17 管理员的默认密码是秘密的 有谁知道我可以在哪里将值更改为其他值 Inside apacheds instances default conf config ld
  • 找不到为 MVC 5 DropDownListFor 添加占位符的方法

    我尝试在网络上搜索并用我的代码尝试不同的东西 我知道如何为文本框添加占位符 但是为 MVC 5 下拉列表添加一个占位符怎么样 我有以下代码 但不会将占位符放入下拉列表中 Html DropDownListFor model gt model
  • Constexpr 类:继承?

    首先 我正在使用 Clang 3 4 1 我正在编写一个全局变量 它必须充当编译时上下文的占位符 主要作为值模板参数 为此 我编写了一个名为的 constexpr 类chameleon 它模仿任何运行时值的行为 struct chamele
  • c++11 及更高版本中 mutex.lock() 和 .unlock() 的确切线程间重新排序约束是什么?

    根据https en cppreference com w cpp atomic memory order https en cppreference com w cpp atomic memory order mutex lock and
  • 帮助菜单缺失部分 - Eclipse Luna

    我正在 Eclipse Luna 中工作 安装 Oracle Enterprise Pack for Eclipse OEPE 后 帮助菜单显示缺少项目 我附上屏幕截图 丢失物品 另外 我检查了菜单可见性 检查更新 安装新软件 安装细节 等
  • mypy 设置字典键/接口

    假设我有一个以字典作为参数的函数 def f d dict gt None x d x print x 我可以指定这本词典吗must有钥匙 x 到我的 我正在寻找类似的东西打字稿的界面 https www typescriptlang or
  • 如何在 Eclipse CDT 中配置特定的 GCC 交叉工具链?

    我导入了一些源代码C Makefile Project到 Eclipse CDT 工作区 并指定Cross GCC 索引器设置 工具链 项目导入进展顺利 但包含路径设置仅指向我当前的本机主机 GCC 实现 我一直在寻找Toolchain E
  • JavaScript:如何将额外参数传递给回调[重复]

    这个问题在这里已经有答案了 我有一个问题困扰了我一段时间 假设我有以下数组 var array 1 2 3 现在我有一个与此类似的功能 function print num str console log str num 是否可以调用 fo