如何在JavaScript函数调用中预先设置参数?(部分功能申请)

亚历克斯

我正在尝试编写一个JavaScript函数,该函数将返回其第一个参数(函数),并将其所有其他参数作为该函数的预设参数。

所以:

函数out(a,b){ 
    document.write(a +“” + b); 
} 

函数setter(...){...} 

setter(out,“ hello”)(“ world”); 
setter(out,“ hello”,“ world”)();

将输出两次“ hello world”。对于二传手的一些实现

我在第一次尝试时就遇到了处理arguments数组的问题,但是似乎会有更好的方法来做到这一点。

杰森邦廷:

首先,您需要一个部分- 部分和咖喱之间是有区别的 -这就是您所需要的,而没有框架

function partial(func /*, 0..n args */) {
  var args = Array.prototype.slice.call(arguments, 1);
  return function() {
    var allArguments = args.concat(Array.prototype.slice.call(arguments));
    return func.apply(this, allArguments);
  };
}

现在,使用您的示例,您可以完全按照自己的意愿进行操作:

partial(out, "hello")("world");
partial(out, "hello", "world")();

// and here is my own extended example
var sayHelloTo = partial(out, "Hello");
sayHelloTo("World");
sayHelloTo("Alex");

partial()函数可用于实现,但不是临时的。这是一篇博客文章中的区别引述

在部分应用程序采用一个函数并从中构建一个采用较少参数的函数的情况下,currying通过函数的组合构建采用多个参数的函数,每个函数均采用一个参数。

希望有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Django模板中调用带有参数的函数?

如何在Java中调用将回调作为参数的函数

如何在dplyr 0.7中参数化函数调用?

如何在LLVM中获取函数调用的参数?

如何在Angularjs中调用Javascript函数

如何在JS中的函数调用之间存储参数

带参数的函数调用如何在C中工作?

如何在C ++中调用默认模板功能参数?

如何在调用函数的javascript对象中使用此参数?

如何在Blazor中调用带有参数的函数?

如何在Typescript中定义和调用通用函数参数?

如何在JavaScript中设置客户的“ $”功能?

如何在React中向API调用函数添加参数

如何在Rails 4中检查参数并停止申请?

如何在ajax函数中调用自动完成功能

如何在jQuery中使用参数调用JavaScript函数?

如何在setBackgroundColor函数中设置参数

如何在cherrypy中设置“ before_handler”的可调用函数参数

如何在JavaScript中调用嵌套函数?

如何在iframe中调用javascript函数?

如何在VBA中调用JavaScript函数?

如何在javascript中的主函数中调用函数

如何在带有参数的函数中调用变量函数?

如何在javascript中调用递归函数

如何在 IEnumerable 中的 Where 部分设置参数

如何在 JavaScript 中将外部函数设置为函数的参数?

如何在 PHP 中调用 JavaScript 函数?

如何在javascript函数中为参数的特定默认值设置值

如何在 Pytest 参数化功能中调用对象的属性