如何在 JavaScript 中调用带有部分前缀参数的函数?

JavaScript 函数可以带或不带参数调用。当使用参数调用时,函数将使用作为值传入的参数来执行。当不带参数调用时,该函数将在不传入任何参数的情况下执行。

在某些情况下,需要使用一些参数(但不是全部)来调用函数。这可以通过使用 Function.prototype.apply 方法或使用扩展运算符 ( … ) 来完成。

使用 Function.prototype.apply 方法

Function.prototype.apply 方法可用于调用带有某些参数的函数,但不是全部参数。 apply 方法的第一个参数是 this 值,后跟要传递给函数的参数数组。

语法

apply(thisArg)
apply(thisArg, argsArray)

参数

  • thisArg – 为调用函数提供的 this 值。如果函数不是严格模式,null 和 undefined 将被替换为 global,原始值将被转换为对象。

  • argsArray 可选 – x 类似数组的对象,指定应调用函数的参数,如果不应向函数提供参数,则指定 null 或未定义。

示例

例如,考虑以下代码

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function add(a, b) {
         return a + b;
      }
      document.getElementById("result").innerHTML = add.apply(null, [1, 2])
   </script>
</body>
</html>

this 值作为第一个参数传递给 apply 方法,参数数组作为第二个参数传递。使用 this 值和作为值传入的参数来调用该函数。

Function.prototype.apply 方法是一种使用某些参数(但不是全部参数)调用函数的强大方法。通过使用 apply 方法,您可以避免对要传递给函数的参数进行硬编码。

使用价差运算符

展开运算符 ( … ) 可用于调用带有某些参数(但不是全部参数)的函数。

扩展运算符将参数数组扩展为单独的参数。

例如,考虑以下代码 –

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function add(a, b) {
         return a + b;
      }
      document.getElementById("result").innerHTML = add(...[1, 2])
   </script>
</body>
</html>

参数数组被扩展为单独的参数,并使用这些参数调用函数。

使用bind()方法

Function.prototype.bind() 方法可用于创建一个新函数,该函数调用原始函数并预先添加一些参数。

例如,考虑以下代码 –

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function add(a, b) {
         return a + b;
      }
      const add1 = add.bind(null, 1);
      document.getElementById("result").innerHTML = add1(2)
   </script>
</body>
</html>

bind 方法的第一个参数是 this 值,其余参数在调用函数时用作函数的参数。在此示例中,this 值作为 null 传递,值 1 作为第一个参数传递给 add 函数。

bind 方法返回一个新函数,使用给定参数调用该函数。在此示例中,使用值 2 调用 new 函数,使用值 1 和 2 调用函数 add。

JavaScript 函数可以带或不带参数调用。在某些情况下,需要使用一些参数(但不是全部)来调用函数。这可以通过使用 Function.prototype.apply 方法或使用扩展运算符 ( … ) 来完成。

以上就是如何在 JavaScript 中调用带有部分前缀参数的函数?的详细内容,更多请关注双恒网络其它相关文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » 如何在 JavaScript 中调用带有部分前缀参数的函数?

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12334资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1406稳定运行(天)

提供最优质的资源集合

立即查看 了解详情