无法使用 String#trim 作为 Array#map 的回调

2024-04-10

由于某种原因我无法使用String.prototype.trim.call作为数组方法的回调,例如map or filter.

在这种情况下,两个函数的工作原理相同:

function trim(string) {
  return string.trim();
}

var string = ' A ';

trim(string);                       // 'A'
String.prototype.trim.call(string); // 'A'

但是,当我尝试将它们作为数组方法的回调传递时,第二个失败:

var array = [' A', 'B ', ' C '];

array.map(trim);                       // ['A', 'B', 'C'];
array.map(String.prototype.trim.call); // TypeError: undefined is not a function

Demo: http://jsbin.com/ubUHiHon/1/edit?js,控制台 http://jsbin.com/ubUHiHon/1/edit?js,console

我假设在后一种情况下this不指向数组元素,但我想清楚地解释正在发生的事情。


String.prototype.trim.call(string); // 'A'
array.map(String.prototype.trim.call); // TypeError: undefined is not a function

当您调用call第一种情况下的方法,其this value https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this绑定到String.prototype.trim功能。在第二种情况下,您只需访问call函数无需绑定到任何东西 - 你可以只使用

array.map(Function.prototype.call)

调用此方法时没有任何内容this值、数组中的元素、索引和整个数组作为参数。你打电话时call不是在函数上,它会抛出。您可以使用第二个参数map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map or the bind method https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind修复this的值call:

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

无法使用 String#trim 作为 Array#map 的回调 的相关文章

  • 如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法

    我使用 VB6 创建了一个 ActiveX dll 并使用打包和部署向导将其打包 生成了一个 cab 文件和一个演示 HTML 页面 此 ActiveX dll 包含一个 simgle 方法 该方法返回字符串且不接受任何参数 我遇到的麻烦是
  • 获取单词中重复次数最多的字母的数量

    我正在尝试计算单词中重复次数最多的字母的数量 function GreatestCount str var count for var i 0 i
  • 如何检索 jquery $.ajax 对象的responseJSON属性[重复]

    这个问题在这里已经有答案了 我有这个 JavaScript ajax ajax type GET url DBConnect php data dataType json success function data error functi
  • 如何使用 JqGrid 子网格进行内联编辑?

    我知道如何使用主网格进行内联编辑 但是有没有办法对子网格进行内联编辑 这是我的 JS 文件 function var lastsel list jqGrid url example php postData q 1 datatype jso
  • javascript获取上周的第一天和最后一天[重复]

    这个问题在这里已经有答案了 我想用 javascript 获取上周的第一天 星期一 和最后一天 星期日 我已经检查过其他主题 但它不起作用 我还需要处理前一周是否是两个不同的月份 我正在使用此代码 但最后一个星期日是 06 03 2014
  • 这个特定的 ReactJs 代码是如何执行的初学者问题?

    我是初学者 正在阅读大量代码 现在我想知道下面的代码我明白这段代码在做什么 我需要澄清的是代码流程 当我运行它时 我看到图像正在加载 React 是从上到下执行代码吗 占位符图像异步获得正确的图像 但会App如果需要时间 组件会开始渲染但没
  • 了解执行模型和事件循环

    我读过很多关于JavaScript单线程执行模型 事件循环和事件队列的文章 但有一件事尚不清楚 我创建了一个小提琴来说明我的问题 http jsfiddle net yzpmf67f http jsfiddle net yzpmf67f
  • Jquery 动画与 CSS 浮动

    我的代码有问题 宽度似乎可以工作 但浮动没有 这里是 这是一个例子 http jsfiddle net v82ck http jsfiddle net v82ck 问题 悬停时菜单上的浮动属性不会改变 我希望每个菜单元素下方的线在悬停该菜单
  • 在 AngularJS 中覆盖运行时的依赖关系

    我有一个服务叫 doggedHttp 它公开了与 http 现在我想创建一个 doggedResource服务是有角度的 resource服务之上 doggedHttp代替 http 换句话说我想注入 doggedHttp as the h
  • GeoJSON 要素坐标未显示在 OpenLayers 地图上

    我正在尝试显示一个GeoJSON地图上的多边形 我使用了 OpenLayers 提供的示例以及以下数据 但仅显示第二个多边形 var geojsonObject type FeatureCollection crs type name fe
  • 合并字符数组中的最小重复次数

    假设我有两个数组 我想合并它们 以便合并后的数组具有最小重复次数 例如 x x 是重复 arr1 x d d m f m arr2 d d x f f m 唯一的条件是在合并数组中 元素来自arr1 and arr2必须出现在各自的订单中a
  • 按自定义字母顺序对数组进行排序

    如何对这样的数组进行排序 apple very auto tom tim violet 要按 v a t x b 等排序 不按字母顺序 violet very auto tom tim 在脚本中 我会做这样的事情 myArray sort
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • Node.js 和 Express:异步操作后如何返回响应

    我是 Node js 新手 所以我仍然对异步函数和回调很感兴趣 我现在的难题是如何在异步操作中从文件读取数据后返回响应 我的理解是发送回复的工作方式如下 这对我有用 app get search function req res res s
  • 获取键盘事件中的鼠标位置

    我试图在用户按住 Shift 键时出现选择轮 滚轮应以鼠标位置为中心 然而当我测试这个时 pageX and clientX两者在事件对象上都未定义 是否可以通过键盘事件获取鼠标坐标 不 只需跟踪mousemove事件并持续保存当前位置 以
  • CKEditor TypeError:c[a] 在 CodeIgniter 中未定义

    我正在尝试在基于 codeigniter 的网站中安装 CKEditor 并且我已按照本教程进行操作 Codeigniter 教程中的 CKEditor http nukium com developpement php framework
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就
  • 禁用 Materialise Carousel 上的触摸

    看起来以前没有人问过这个问题 因为我几乎在互联网上寻找一个非常简单的答案 如何禁用在物化轮播上向左 向右滑动的功能 在 Materialize js 添加 编辑 var allowCarouselDrag true value functi
  • 如何在odoo中重写js函数

    我想加载 shop checkout url 函数是 odoo define change info order website sale change info order function require use strict oe w
  • 截断段落前 100 个字符并隐藏段落的其余内容,以通过更多/更少链接显示/隐藏其余内容

    我有一个超过 500 个字符的段落 我只想获取最初的 100 个字符并隐藏其余部分 我还想在 100 个字符旁边插入 更多 链接 单击更多链接时 整个段落应显示并编辑文本 更多 到 更少 单击 更少 时 它应切换行为 段落是动态生成的 我无

随机推荐

  • 删除字符“.”之前的字符

    如何有效地删除字符串中位于字符 之前的所有字符 Input 美洲美国 Output USA 您可以使用IndexOf method http msdn microsoft com en us library kwb0bwyd v VS 10
  • 有没有 View.GetOutline() 的替代方案可以提供更好的轮廓?

    返回的大纲View GetOutline 方法并不完全对应于可见绘图 它返回的内容比 SolidWorks GUI 显示的选择轮廓要多一些 下面的屏幕截图显示了选择轮廓 浅蓝色虚线矩形 和由返回的轮廓的对角线View GetOutline
  • sem_init(…): value 参数有什么用?

    在类中 我们必须使用信号量来完成线程的工作 sem init 的原型 和头文件 如下 int sem init sem t sem int pshared 无符号 int 值 但我不明白 value 变量的用途 据 opengroup or
  • 关闭 Android 中的自动对焦

    这是在我的应用程序代码中关闭相机自动对焦的任何方法 我想检查如果手机没有自动对焦功能 我的扫描仪如何工作 但我的手机有该功 能 Use FOCUS MODE INFINITY http developer android com refer
  • MojoExecutionException:使用 Android 的 Maven

    我将 Android Studio 与 Maven 3 1 1 一起使用 在包目标中它因 MojoExecutionException 崩溃 我读了很多帖子 但无法得到解决方案 错误 生成源时出错 org apache maven plug
  • 将 MySQL Workbench 链接到我的远程服务器

    我刚刚下载了 MySQL Workbench 但我不太明白如何将其与远程服务器上的数据库同步 工作台要求 主机名 因此我提供了远程服务器的主机名 我指定端口 3306 然后我提供一个用户名 这是我登录 PhpAdmin 时使用的用户名 我应
  • Twilio 通过 REST API 挂断呼叫不起作用?

    当呼叫状态为排队状态 正在振铃或已发起 时 如何挂断电话 下面的代码对呼叫没有任何影响 呼叫会继续响铃 直到听筒接听 有时 当座席意识到他们拨打了错误的号码时 他们需要一种方法在响铃过程中挂断呼叫 PHP code client gt ca
  • Android studio中的文件路径

    我正在尝试发送带有附件的电子邮件 除了附加文件之外 一切正常 调用方法时 它显示 java io FileNotFoundException 虽然我手动插入精确路径 文件 存储 模拟 0 Android data com example a
  • 查找一对 QuadCurve2D 的交集

    有没有一种简单的方法来近似两个实例的点 如果有 QuadCurve2D相交 也就是说 我如何计算图中红点的坐标 没有明显的方法QuadCurve2D去做这个 注意 这些点并不准确 因为我已经为图表手动调整了它们 另请注意 缺失 的第四个点
  • 我应该避免使用管道运算符对包进行编程吗?

    有没有客观原因管道操作员 https cran r project org web packages magrittr vignettes magrittr html来自 R 包magrittr 例如 gt 当我在 R 中编写包时应该避免吗
  • 波兰表示法的实现

    我想编写一个程序来计算给定算术表达式的输出 像那样 我的输入是 1 2 3 4 5 6 我的输出应该是 156 我编写了一个 Java 程序来使用 Stack 数据类型来执行此操作 这是我的 Java 程序 import java util
  • 防止 ejs for 循环中出现空行

    我有以下简单的 ejs 模板 这会产生以下结果 0 1 2 3 4 5 6 7 8 9 如何防止 ejs 创建这样的空行 如果可能的话 我不想修改结果字符串 而是告诉 ejs 不要渲染这些空行 我怎样才能做到这一点 修剪模式 newline
  • 张量流中的正则化损失是什么?

    当使用 Tensorflows 对象检测 API 训练对象检测 DNN 时 它的可视化平台 Tensorboard 会绘制一个名为regularization loss 1 这是什么 我知道什么是正则化 使网络善于通过各种方法 例如 dro
  • GreenDAO支持表之间的多种关系

    我一直在尝试使用 GreenDAO 创建数据库模型 当我尝试在不同表之间创建多个关系时 问题就开始了 基本上 我有一个Message桌子 一个Conversation表和一个User table 用户有一个消息列表 并且该消息有一个父对话
  • printf 命令导致段错误? [复制]

    这个问题在这里已经有答案了 当我尝试初始化一个大型的二维字符数组时 它工作得很好 但是当我添加一个简单的打印命令时 它给了我一个分段错误 关于为什么会发生这种情况有什么想法吗 include
  • 如何将 Zlib 与 Cmake 链接

    我试图将我的文件与 zlib 库链接 但仍然得到 对 deflateInit 的未定义引用 我目前正在使用CLion 已从主页下载了zLib文件并将其添加到项目中 这就是我的 CmakeLists txt 的样子 cmake minimum
  • 查找通过代理连接的客户端的IP地址

    有没有办法收集通过代理服务器连接到您网站的客户端的 IP 地址 整个设置是一个内部 LAN 通过系统管理员 我也可以控制代理计算机 我在网站服务器端使用 PHP5 I tried SERVER REMOTE ADDR 在 PHP 中 但此变
  • 处理 Mongoose 中的架构更改

    随着应用程序的发展 更新 迁移 Mongoose 模式的最佳实践 或工具 是什么 有趣的是 MongoDB 的诞生就是为了解决 RDBMS 中的模式问题 您不必迁移任何内容 您所要做的就是在架构定义中设置默认值 如果该字段是必需的 new
  • 如何管理 MySQL Workbench 中的 SQL 选项卡?

    我经常需要的每个项目都有多个 SQL 查询 我的问题是 我的所有项目都需要 Workbench 中相同的 MySQL 连接 所以我一直打开大量的 SQL 选项卡 如下所示 由于选项卡的数量超过了显示器的宽度 因此我必须左右滚动才能找到一些查
  • 无法使用 String#trim 作为 Array#map 的回调

    由于某种原因我无法使用String prototype trim call作为数组方法的回调 例如map or filter 在这种情况下 两个函数的工作原理相同 function trim string return string tri