JavaScript ES5 数组函数。 forEach 第二个“此值”参数

2023-11-26

我是 JavaScript 新手。我面临以下问题。

就像声明的那样here,几乎所有 ES5 数组函数(forEach、map、filter、every、some)都可以接受额外的第二个参数。

如果指定了该函数,则将其视为第二个参数的方法来调用。也就是说,您传递的第二个参数将成为this您传递的函数内部的关键字。

array.forEach(function(currentValue, index, arr), thisValue)
array.map(function(currentValue, index, arr), thisValue)

相反:

array.reduce(callback, [initialValue])
array.reduceRight(callback, [initialValue])

请注意,reduce() 和 reduceRight() 都不接受可选参数来指定要调用归约函数的 this 值。请参阅函数.bind()方法(如果您需要调用归约函数)作为特定对象的方法。

“作为特定对象的方法被调用”是什么意思?谁能提供一些示例,它可能如何影响我的代码?

提前致谢。


这很简单。在回调函数中,thisvalue 将是传递给数组方法的第二个参数。如果你不会使用this,那么这个参数是无关紧要的,你不需要传递它。

"use strict";
[0].forEach(function(currentValue, index, arr) {
  console.log(this); // 1234
}, 1234);

请注意,在草率模式下,this值被转换为对象。因此,如果您省略参数或使用undefined,您将得到全局对象。

如果您需要类似的东西reduce,然后使用bind:

"use strict";
[0, 1].reduce(function(prevValue, currValue, index, arr) {
  console.log(this); // 1234
}.bind(1234));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript ES5 数组函数。 forEach 第二个“此值”参数 的相关文章

  • PHP 中的 JS charCodeAt 等效项(具有完整的 unicode 和 emoji 兼容性)

    我在 JS 中有一个简单的代码 如果涉及特殊字符 我无法在 PHP 中复制它 这是 JS 代码 参见JSFiddle https jsfiddle net h8oca3qg 5 用于输出 var str t char t and speci
  • 使用 fadeIn() 时,jQuery“未捕获类型错误:未定义不是函数”;

    我是 JS 新手 正在编写一个基本的富含 jQuery 的网页 其中同一文档中的每个页面都具有淡入 淡出功能 使用具有单独 ID 的相同 div 元素 无论如何 当我尝试淡入当前页面时 我收到错误 未捕获的类型错误 未定义不是函数 我在网上
  • 比较两个字符串ArrayList

    我有两个数组列表 dim Colors1 New ArrayList Colors1 Add Blue Colors1 Add Red Colors1 Add Yellow Colors1 Add Green Colors1 Add Pur
  • 在函数调用时加载外部 Javascript

    我想知道如何从函数将外部 Javascript 加载到我的文档中 这是一种方法 function loadDaFun var script document createElement script script src path to y
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • 粘性页脚不粘在 AngularJS 中

    Im working an angular site and im trying to implement a sticky footer across all views but the footer stops sticking whe
  • d3 树 - 有相同孩子的父母

    我一直在将代码从 JIT 转换为 D3 并使用树布局 我已经复制了代码http mbostock github com d3 talk 20111018 tree html http mbostock github com d3 talk
  • 在生产中使用 css / javascript 源映射对性能有何影响?

    生产环境中应该使用源映射吗 除了调试之外 它们还有什么好处吗 由于额外的服务器往返 它们是否会影响应用程序加载时间 浏览器是否足够智能来加载 map应用程序加载和渲染后的资产 如果浏览器找不到 map asset 404错误 会对性能产生影
  • 如何按日期升序对对象进行排序?

    如果我有一个对象列表 var objectList LIST OF OBJECT each object列表中包含三个属性 name date gender 如何按 对列表中的对象进行排序date 属性升序 the date 属性包含字符串
  • Antd datepicker (date.clone/date.load 不是函数)

    我有一个反应应用程序 有一个复选框可以禁用日期选择器 但当我使用复选框禁用它时 我无法选择任何日期 如果我删除复选框及其功能 则不会出现错误 目前 我得到 date clone 不是函数 error const dateFormat YYY
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • d3 序数尺度的映射

    我正在使用 D3 的序数比例将数字映射到颜色 我用过这个 color d3 scale ordinal range 1f77b4 ff7f0e 2ca02c d62728 9467bd 8c564b e377c2 domain 0 6 co
  • jQuery 删除函数真的删除 Dom 元素吗?

    我真的想知道 jQuery 是否remove http api jquery com remove 函数确实从 DOM 中删除元素 首先 我看了here https stackoverflow com questions 2185760 j
  • 创建并初始化具有连续名称的类的实例

    我有一个BankAccount班级 我试图创建这个类的多个实例并将它们放入一个数组中 例如 accounts Ba1 BankAccount new 100 Ba2 BankAccount new 100 我想初始化包含大量实例的数组 假设
  • 如何列出特定服务器的所有成员?

    我的代码是 const list client guilds find id 335507048017952771 for user of list users console log user 1 username 这实际上没有任何作用
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • 如何控制谷歌地图标记的不透明度

    我需要根据时间使一些标记半透明 有什么方法可以控制标记的 CSS 不透明度吗 或者是否可以可靠地找出标记的 DOM 元素 我使用 Google 地图 API v3 标记的不透明度可以设置为marker setOptions opacity
  • Chrome 和 IE 上的滚动/延迟事件

    我试图让用户始终看到一个内容块 即使他向下滚动页面也是如此 他还应该能够上下滚动内容块 这是一个精简版本的小提琴 向您展示我的意思 http jsfiddle net 9ehfV 2 http jsfiddle net 9ehfV 2 人们
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • JavaScript:如何在 Internet Explorer 中模拟更改事件(委托)

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

随机推荐

  • 格式化 SoapUI 项目文件

    我使用 SoapUI 的免费版本 版本 4 6 1 并注意到它的项目文件格式非常糟糕 它的许多元素并不像开发人员维护的大型 XML 文件那样位于专用行或缩进中 这使得区分和合并对源代码控制项目文件的更改变得更加困难 我知道 SoapUI P
  • 如何从工作表中删除公式但保留其计算值[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么不起作用以及预期结果 也可以看看 Stack Overflow 问题清单 有关您编写的代码的问题必须描
  • WPF 中的分段文本框

    有谁知道免费或商业 WPF 控件可以执行以下操作 每个框 X 个字符 并在完成每个框时自动跳到下一个框 类似于为 Microsoft 产品输入许可证密钥的方式 我认为从头开始做起来并不是特别困难 但如果已经存在一个很好的例子 我想避免重新发
  • 如何在 NestedScrollView 中使用 RecyclerView

    我有这样的布局
  • 在rails4中设置hstore,动态键/值

    我第一次在 Rails4 应用程序中使用 Hstore 并且在表单中使用 javascript 为 hstore 列构建动态表单字段 schema 在 Rails 4 中 我不需要在模型中添加任何 setter getter 方法 对吗 在
  • 在 Scala 中使用 Streams 进行迭代

    SICP表示迭代过程 例如平方根计算的牛顿法 pi 计算等 可以用以下形式表示Streams 有人用吗streams在 Scala 中建模迭代 这是生成 pi 近似值流的一种方法 val naturals Stream from 0 0 1
  • 通过引用传递键和值的替代方法:

    有人可以向我解释为什么你不能传递密钥作为参考吗 Ex if is array where foreach where as key gt value key sec key value sec value unset key value T
  • fsync、sync:它真的做了它应该做的事情吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想对 Linux 2 6 31 中的sync 8 和 fsync 函数的功能有更多的说明 它是否确保文件写入相应的存储 http linux die net man 8 sync
  • 如何使用主题标签更改单词的颜色

    我需要能够以不同的颜色显示所有以 开头的单词的文本 并且它们应该是可单击的 我怎样才能做到这一点 这应该可以解决问题 private void setTags TextView pTextView String pTagString Spa
  • Java socketRead0 问题

    我正在使用 htmlunit 开发一个网络爬虫 并且添加了所有必需的超时 但我注意到当我使用 Java VisualVM 进行线程转储时 某些网站的服务器没有响应时 应用程序会挂起 java lang Thread State RUNNAB
  • Google 地图 Android API:授权失败。确保启用“Google Maps Android API v2”。确保以下 Android Key 存在

    我收到此错误 E Google Maps Android API Authorization failure Please see https developers google com maps documentation android
  • 有没有办法在 CSS 中的内联元素上设置 min-line-height ?

    我有一些内联链接 图标显示在左侧 填充 背景 但是当字体太小时 图像不适合行高 并且会在顶部和底部被裁剪 有没有什么方法可以在不使用javascript的情况下防止这种情况发生 我不想以 px 为单位设置字体大小 将某些 min line
  • 错误:EACCES:权限被拒绝

    I run npm 安装 lodash但它抛出错误 EACCES 权限被拒绝错误 我知道这是权限问题 但据我所知 本地安装节点模块不需要 sudo 权限 如果我使用 sudo 运行它 它会安装在 node modules 文件夹中 drwx
  • 创建一个ostream

    出于教育原因 我正在尝试创建一个 C ostream 我的测试将创建一个 ostream 其行为类似于 ofstream 只不过它不是写入文件 而是写入双端队列或向量容器 正如您所说 因为这是为了教育 我将向您展示我将如何做这样的事情 否则
  • hibernate不创建表但没有错误消息

    我正在做一个 spring boot 项目并尝试使用 hibernate 创建一个表 当我运行应用程序并且服务器正常启动时没有收到错误 但该表没有创建 状态更新 java package model import java util Dat
  • android:如何更改ListPreference标题颜色?

    我想将 ListPreference 的标题和线条颜色从蓝色更改为粉红色 以匹配操作栏的线条 有任何想法吗 提前致谢 我一直在浏览 Android 的themes xml and styles xml看着像这样的东西dialogPrefer
  • 有没有办法找到文件对象的缓冲区大小

    我正在尝试 映射 一个非常大的 ascii 文件 基本上 我会读取行 直到找到某个标签 然后我想知道该标签的位置 以便稍后再次查找它以提取相关数据 from itertools import dropwhile with open data
  • 使用扩展字符串作为 Powershell 函数参数

    我正在尝试编写一个函数 该函数将打印用户提供的问候语并发送给用户提供的名称 我想在这个代码块中使用扩展字符串 Name World Greeting Hello Name Greeting 哪个成功打印Hello World 但是 当我尝试
  • 如何在 facebook graph api 请求中使用 cURL

    我正在使用 file get contents 获取 facebook graph api 的信息 但有时我会收到错误 我发现必须使用 cURL 而不是 file get contents 问题是 我不知道如何将 cURL 与我需要传递的
  • JavaScript ES5 数组函数。 forEach 第二个“此值”参数

    我是 JavaScript 新手 我面临以下问题 就像声明的那样here 几乎所有 ES5 数组函数 forEach map filter every some 都可以接受额外的第二个参数 如果指定了该函数 则将其视为第二个参数的方法来调用