首页 > web前端 > js教程 > JavaScript `apply()` 与 `call()`:我什么时候应该使用哪个?

JavaScript `apply()` 与 `call()`:我什么时候应该使用哪个?

Linda Hamilton
发布: 2024-12-22 19:07:14
原创
889 人浏览过

JavaScript `apply()` vs. `call()`: When Should I Use Which?

JavaScript 中的调用方法:探索 apply() 与 call()

在 JavaScript 中调用函数时,有两个主要方法:你的处置:apply() 和 call()。两者都允许您使用指定的 this 值执行函数,但它们的参数传递方式有所不同。

apply(thisValue,argumentsArray)

  • 构造来自提供的argumentsArray的数组。
  • 使用指定的thisValue和数组的元素作为单独的元素调用函数参数。
  • 示例:
const func = function() {
    console.log("Hello world!");
};
func.apply(null, ["John", 35]); // Invokes "Hello world!" and logs "John" and 35.
登录后复制

call(thisValue, arg1, arg2, ...argN)

  • 将参数视为单独的参数。
  • 使用指定的 thisValue 和单独提供的参数调用函数
  • 示例:
func.call(null, "John", 35); // Invokes "Hello world!" and logs "John" and 35.
登录后复制

助记符:

  • 应用: A 表示数组参数。
  • 调用:C 以逗号分隔参数。

性能差异:

  • apply() 和 apply() 之间的性能差异通常可以忽略不计call()。
  • 但是,在处理大量参数时,apply() 可能会稍微快一些。

最佳用例:

  • 使用 apply(): 当你有一个要传递的参数数组时到函数,尤其是当参数数量事先未知时。
  • 使用 call(): 当您想要将单个参数传递给函数并更好地控制它们的顺序时。

ES6 新增内容:

  • 中ES6,您可以将扩展运算符与 call() 结合使用,将数组扩展为各个参数。
  • 示例:
func.call(null, ...["John", 35]); // Same as func.apply(null, ["John", 35]).
登录后复制

以上是JavaScript `apply()` 与 `call()`:我什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板