首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将函数传递给函数和可变长度参数

将函数传递给函数和可变长度参数
EN

Stack Overflow用户
提问于 2020-06-10 04:59:46
回答 1查看 14关注 0票数 1

我有两个功能:

代码语言:javascript
复制
first - takes 1 argument
secon - takes 2 arguments

然后我有第三个函数,它接收一个函数和一个值作为参数。

我不知道如何让第三个函数知道它正在接收一个参数还是两个参数,这取决于在第二个参数中传递的是哪个函数?

**在下面的示例中,当调用third时,在代码末尾的两个调用中都应该返回2。

代码语言:javascript
复制
let val = 12;

let val2 = 14
let toC = 14;

// checks if val === 12 | takes 1 argument
const first = num => num === 12 ?2 :0;

// checks if val === toC | takes 2 arguments
const second = (num, check) => num === check ?2 :0;

// third function that receives a function and a val as arguments
const third = (func, num) => {
  let temp = func(num);
  return temp;
}

// this one works
console.log(third(first, val));

// this doesn't
console.log(third(second, (val2, toC)));

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-10 05:11:32

看起来third函数只是调用作为参数提供的函数并返回值。在这种情况下,您可以使用rest parameters

代码语言:javascript
复制
let val = 12;

let val2 = 14
let toC = 14;

// checks if val === 12 | takes 1 argument
const first = num => num === 12 ? 2 :0;

// checks if val === toC | takes 2 arguments
const second = (num, check) => num === check ?2 :0;

const third = (func, ...args) => {
  let temp = func(...args);
  return temp;
}


console.log(third(first, val));

console.log(third(second, val2, toC));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62291754

复制
相关文章

相似问题

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