.forEach 中 thisArg 的用途是什么?

2023-11-22

JavaScript 的对于每个文档指出.forEach语法是:

arr.forEach(callback[, thisArg])

有什么用thisArg?


The thisArg可以提供改变inner this的回调函数。

未指定thisArg结果是this参考Window在非严格模式下。在严格模式下("use strict";) 这将是undefined.



如果你对这个事实感到困惑,那么thisArg 什么也没做使用箭头函数时:

var myObject = { name: 'myObject' };

[1,2].forEach(item => { 
  console.log(item);                     // 1, 2
  console.log(this === myObject, this);  // false  Window {}
}, myObject)

这是因为:

箭头函数无法绑定

在箭头函数中,this指的是最近的范围this如果没有范围提供,则一直到 Windowthis价值。它的工作方式就像普通的变量查找,直到某些this被发现。
为了更好地理解this see 这个要点 or TS 游乐场.



上下文与正常功能绑定。

var myObject = { name: 'myObject' };

[1,2].forEach(function(item){ 
  console.log(item);                     // 1, 2
  console.log(this === myObject, this);  // true  {name: "myObject"}
}, myObject)

如果你不指定myObject此时,this里面会指向Window与箭头函数一样。

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

.forEach 中 thisArg 的用途是什么? 的相关文章

  • 如何确定并打印 jQuery 版本?

    是否有一个 jQuery 函数可以返回当前加载的 jQuery 版本 你可以使用这个 fn jquery or if you re using noConflict jQuery fn jquery 当 jQuery 构建时它会自动更新 定
  • 如果没有“new”,则无法调用类构造函数

    感谢这个问题已经被问过几次了 但是我遇到的几乎所有情况都是有人试图扩展非本地类的情况 我的情况有所不同 我有一个非常简单的基类 名为CObject如下 export class CObject extends BaseObject cons
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • Mapbox GL 中的 MaxBounds 和自定义非对称填充

    我有一个 Mapbox GL JS 应用程序 在地图上显示一些小部件 为了确保地图上的任何内容都不会被它们隐藏 我使用以下命令添加了一些填充map setPadding 这是一个不对称的 在我的例子中左边比右边大 它按预期工作 例如fitB
  • 如何立即启动setInterval循环? [复制]

    这个问题在这里已经有答案了 在一个简单的setInterval setInterval function Do something every 9 seconds 9000 第一个动作将在 9 秒后发生 t 9s 如何强制循环立即执行第一个
  • karma/jasmine 控制台更详细的测试结果

    我使用 Karma 和 Jasmine 进行 javascript 单元测试 假设我有一个失败的测试 如下所示 expect objectA toEqual expectedObjectA 当失败时 我看到控制台上转储了两个对象 并显示一条
  • JavaScript中如何确保输入的值是数字而不是字符串?

    我创建了这个函数 function num var x prompt please enter your first number var y prompt please enter your second number if isNaN
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • Web组件中嵌套槽的内容不可见

    我有一个 Web 组件 它应该接受任意元素来包装其内容 虽然我可以在 Chrome 开发工具中看到插槽已正确分配 但 DOM 中什么也没有出现 以前有人见过这个问题吗 定义 class ExampleParent extends HTMLE
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 摩纳哥:如何添加内联自动完成/代码建议?

    我找不到任何有关如何添加内联自动完成功能的示例 如下图所示 有人可以指导我如何在摩纳哥做到这一点吗 这可以在 v1 66 中启用 现在在 Insiders 中 The editor quickSuggestions设置现在接受内联为 配置值
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • d3.event.translate 在触摸设备的缩放上包含 NaN

    我使用 d3 为我的 svg 编写了一个自定义缩放函数 如下所示 Zoom behavior function myzoom xpos d3 event translate 0 ypos d3 event translate 1 vis a
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • MongoDB:javascript执行失败:无法在 src/mongo/shell/collection.js 保存 DBQuery 对象

    在 MongoDb 中 当我尝试修改集合中的现有文档时 它会生成以下异常 javascript execution failed can t save a DBQuery object at src mongo shell collecti

随机推荐

  • 有谁知道 IOS 6.0 中不推荐使用哪些方法?

    有谁知道有多少种方法已弃用的 IOS 6 0 例如 1 shouldAutorotateToInterfaceOrientation iOS 6 0 中已弃用 而是使用 shouldAutorotate 2 dismissModalView
  • 如何在 Shiny 中使用自己的一组小部件创建多个页面

    我希望能够创建多个页面 每个页面都有一组小部件下拉列表 单选按钮和一个用于绘制地图的空间 Shiny 教程展示了如何创建多个页面 shinyUI navbarPage My Application tabPanel Component 1
  • 多线程单读单写fifo队列

    我需要一个队列来将消息从一个线程 A 传递到另一个线程 B 但是我无法找到真正执行我想要的操作的队列 因为它们通常允许添加项目失败 在我的情况下就是这种情况这几乎是致命的 因为消息需要处理 并且线程确实无法停止并等待空闲空间 只有线程 A
  • 自签名证书可以在 Apache 反向代理后面工作吗?

    我们希望使用 Apache 作为一组应用程序服务器的反向代理 我们计划在 Apache 实例上使用 CA 签名的 SSL 证书 但希望在应用程序服务器实例上使用自签名证书 以便 Apache 到应用程序服务器的连接也被加密 如果不需要 我们
  • 重写方法中的变量名称不正确

    当我让 Android Studio 生成覆盖方法时 它将生成具有奇怪参数名称的方法 例如根据文档 onCheckedChanged 应该如下所示 public void onCheckedChanged CompoundButton bu
  • ruby中各种变量作用域的区别

    Ruby 有 5 个变量作用域 局部变量 这些是正常变量 例如x 25 y gaurish where x and y是局部变量 实例变量 这些用 实际变量名前面的符号 主要与类一起使用 以便类的每个实例 对象都有不同 单独的值 例子 em
  • 使用 C# 中的 StackExchange / Sentinel 进行 Redis 故障转移

    我们目前正在使用 Redis 2 8 4 和 StackExchange Redis 并且很喜欢它 但目前没有任何针对硬件故障等的保护 我正在尝试让解决方案起作用 我们有主 从和哨兵监控 但无法完全到达那里 并且在搜索后我无法找到任何真正的
  • 如何在 SQL Server 中建立多对多关系模型?

    我需要在 SQL Server 数据库中引入两个表之间的多对多关系 这两个表都有一个整数作为主键 在 T SQL 中如何最好地完成此操作 考虑以下两个示例表定义 其中应该存在多对多关系 CREATE TABLE dbo Authors Id
  • 使用Intellij + Maven导入库:无法解析符号

    我已经在 IntelliJ 13 中使用 Maven 导入了一个库 JBox2D 以便在 android 项目中使用 Maven 没有给我任何错误消息 所以我假设库已正确导入 但是 一旦我尝试使用库中的类 我就会收到 无法解析符号 Inte
  • Spring Security默认登录页面代码位于哪里?

    默认登录页面在哪里生成春季安全4当你使用最简单的配置时
  • Python,成对“距离”,需要一种快速的方法来做到这一点

    在我的博士期间的一个业余项目中 我从事了用 Python 建模某些系统的任务 就效率而言 我的程序在以下问题中遇到了瓶颈 我将在最小工作示例中公开该问题 我处理大量由 3D 起点和终点编码的段 因此每个段由 6 个标量表示 我需要计算成对最
  • 将 TensorFlow 损失全局目标 (recall_at_ precision_loss) 与 Keras(而非指标)结合使用

    背景 我有一个有 5 个标签的多标签分类问题 例如 1 0 1 1 0 因此 我希望我的模型能够改进固定召回率 精确召回率 AUC 或 ROC AUC 等指标 使用损失函数没有意义 例如binary crossentropy 这与我想要优化
  • Sass/Compass 从变量中获取变量名

    我正在尝试制作一个 mixin 它可以让我根据您使用的变量名称创建适应的代码块 foo 00A9EC mixin menu color color color color a level2 color color a level2 visi
  • WPF TextFormatter 中第二行的缩进

    我正在使用 TextFormatter 制作 WPF 文本编辑器 我需要缩进每个段落中的第二行 第二行的缩进宽度应该与第一行第一个单词的宽度相同 包括第一个单词后面的空白 像这样的东西 Indent of second line in In
  • 从 Flutter 打开 Android Activity 和 iOS ViewController

    我有一个 Flutter 项目 需要一些需要在本机 Android Activity 或 iOS ViewController 中实现的某些功能 有没有办法导航到 android Activity 并向其传递数据 并在 Flutter 中从
  • 带有 MediaCodec Surface 的 AVC 硬件编码器可靠性如何?

    我正在开发一个 Android 应用程序 该应用程序使用 MediaCodec 使用 Surface 方法对 H 264 视频进行编码 我的目标是 Android 5 0 并且遵循了 bigflake com 中的所有示例和样本 我两年前开
  • MATLAB 中的矩阵乘法时间复杂度

    有谁知道MATLAB使用哪种算法进行矩阵乘法以及它的时间复杂度是多少 为了完整起见 如中所述这个线程 Matlab 使用DGEMM 双通用矩阵乘法 例程来自BLAS 基本线性代数子程序 请注意 BLAS 不存在单一的实现 它针对特定的处理器
  • newtonsoft json序列化时间跨度格式

    是否可以指定自定义格式TimeSpan序列化 使用Newtonsoft Json 我想要格式为 HH mm 的序列化字符串 例如 TimeSpan FromHours 5 gt 05 00 TimeSpan FromHours 5 gt 0
  • 更好的 git add -p 吗?

    有时我在没有安装 X Window 的系统上工作 并且无法使用 Git GUI 现有的控制台替代品是什么git add p 我几乎喜欢它所做的一切 实际上比 Git GUI 更喜欢 但我讨厌它不允许我查看整个图片并选择我想要查看块的顺序 这
  • .forEach 中 thisArg 的用途是什么?

    JavaScript 的对于每个文档指出 forEach语法是 arr forEach callback thisArg 有什么用thisArg The thisArg可以提供改变inner this的回调函数 未指定thisArg结果是t