首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我如何在JavaScript函数调用中预先设置参数?(部分功能应用)

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

Stack Overflow用户
提问于 2018-03-23 08:03:28
回答 2查看 0关注 0票数 0

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

所以:

代码语言:javascript
复制
function out(a,b){
    document.write(a +“”+ b);
}

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

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

会输出两次“hello world”。对于setter的一些实现

我在第一次尝试时遇到了操纵参数数组的问题,但看起来会有更好的方法来做到这一点。

EN

Stack Overflow用户

发布于 2018-03-23 16:36:04

首先,你需要一个部分 这里是你所需要的,没有框架

代码语言:javascript
复制
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);
  };
}

现在,使用你的例子,你可以完成你正在做的事情:

代码语言:javascript
复制
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。以下是一篇关于差异的博客文章引用:

如果部分应用程序接受一个函数并从中构建一个函数,它会减少参数,而curry函数则通过函数的组合构建函数,每个函数接受一个参数。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档