什么是 [].forEach,JavaScript中的 call()?

在 JavaScript 中,[].forEach 以及 call() 都是非常有用的内置方法。它们可以帮助开发者更加高效地处理数组和函数,并使代码更加简洁易读。

1. [].forEach

[].forEach 是一个 forEach 循环语句,可以在数组的每个元素上执行指定的操作。例如,我们可以使用 forEach 来遍历数组并将每个元素打印到控制台:

----- --- - --- -- ---
---------------- -- -----------------
-- ------- -
--         -
--         -

此外,forEach 还可以接受第二个参数,该参数为每个元素在数组中的索引,如下所示:

----- --- - --- -- ---
---------------- ------ -- ------------------ --------- ---------
-- ------- ----- -- -
--         ----- -- -
--         ----- -- -

注意:forEach 并不返回任何值,因此不能使用 return 中断循环。

2. call()

call() 是一种调用函数的方式,允许我们设置函数内部 this 指向的对象,并将参数传递给该函数。例如,假设我们有以下函数:

-------- ------- -
  ------------------- -- ---- -- ---------------
-

我们可以使用 call() 来调用该函数,并将 this 设置为新的对象:

----- ------ - - ----- ------- --
-------------------
-- ------- ------ -- ---- -- -----

此外,call() 还允许我们将参数传递给该函数。例如:

-------- ----------- -
  ------------------- -- ---- -- ----------
-

---------------- -------
-- ------- ------ -- ---- -- ---

这里我们将 null 作为第一个参数传递给 call(),因为我们不需要设置 this 的值。

3. 示例代码

下面是一个示例代码,展示了如何将 forEachcall() 一起使用,以便在数组中遍历并调用带有自定义 this 值的函数:

----- ------- - --- -- ---

-------- ------------------ -
  ---------------- - --------
-

------------------------ -------- -
  ----------------------- ---
---

-- ------- -
--         -
--         -

在这个例子中,我们首先定义了一个 multiplyBy() 函数,它将数字乘以传入的因子,并打印结果。然后,我们使用 forEach 循环遍历数组 numbers,并在每个元素上调用 multiplyBy.call()。在这里,我们将当前循环的数字作为 this 参数传递给 multiplyBy(),以便将其与我们传递的因子相乘。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/11308