在 JavaScript 中,可以通过向函数传递参数来调用函数。但是,有时需要调用已填充一些参数的函数。这可以使用称为部分函数应用的技术来完成。
什么是部分函数应用?
部分函数应用是一种通过“预填充”现有函数的一些参数来创建新函数的方法。当您想要创建一个与现有函数类似但已设置一些参数的新函数时,这非常有用。
例如,假设您有一个计算矩形面积的函数。该函数有两个参数 – 矩形的宽度和高度。
现在假设您要创建一个新函数来计算正方形的面积。这个新函数将与现有函数类似,但它只需要一个参数 – 正方形的边。
这就是部分函数应用程序的用武之地。您可以使用部分函数应用程序来创建一个新函数,该新函数是现有函数的“部分”版本。这个新函数将已经设置第一个参数(宽度),并且只需要第二个参数(高度)。
如何在 JavaScript 中使用偏函数应用?
在 JavaScript 中使用部分函数应用程序有几种不同的方法。
方法1
最常见的方法是使用bind()方法。
bind() 方法是一种从现有函数创建新函数的方法。 bind() 方法有两个参数:要绑定的函数,以及要绑定到函数第一个参数的值。
例如,假设您有以下功能 –
function add(a, b) { return a + b; }
您可以使用bind()方法创建一个已设置第一个参数(a)的新函数。
var add5 = add.bind(null, 5);
现在 add5 函数可以像这样使用 –
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function add(a, b) { return a + b; } var add5 = add.bind(null, 5); document.getElementById("result").innerHTML = add5(10) </script> </body> </html>
如您所见,第一个参数 (5) 已设置,第二个参数 (10) 已传递给 add5 函数。
方法2
使用部分函数应用程序的另一种方法是创建一个函数,该函数接受现有函数和一个值,并返回一个已设置现有函数的第一个参数的新函数。
例如,您可以编写这样的函数 –
function bind(fn, val) { return function() { return fn.apply(null, [val].concat(Array.prototype.slice.call(arguments))); }; }
该函数接受一个现有函数和一个值,并返回一个新函数,该函数的值绑定到现有函数的第一个参数。
例如,您可以使用bind()函数创建一个像这样的新函数 –
var add5 = bind(add, 5);
现在 add5 函数可以像这样使用 –
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function add(a, b) { return a + b; } function bind(fn, val) { return function() { return fn.apply(null, [val].concat(Array.prototype.slice.call(arguments))); }; } var add5 = add.bind(add, 5); document.getElementById("result").innerHTML = add5(10) </script> </body> </html>
如您所见,第一个参数 (5) 已设置,第二个参数 (10) 已传递给 add5 函数。
部分函数应用是一种从现有函数创建新函数的有用技术。它可用于创建与现有函数类似的函数,但已设置一些参数。
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » 如何在 JavaScript 中调用带有附加到参数的部分的函数?