JavaScript 函数可以带或不带参数调用。当使用参数调用时,函数将使用作为值传入的参数来执行。当不带参数调用时,该函数将在不传入任何参数的情况下执行。
在某些情况下,需要使用一些参数(但不是全部)来调用函数。这可以通过使用 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>
参数数组被扩展为单独的参数,并使用这些参数调用函数。
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 中调用带有部分前缀参数的函数?的详细内容。更多信息请关注PHP中文网其他相关文章!