限制Javascript函数接受的参数数量

时间:2018-09-24 14:45:01

标签: javascript function parameters

如何限制Javascript函数接受的参数数量?

因此,此代码段仅记录每个值,不包括索引和数组:

const names = ["John", "Jack", "Jake"]

names
.map(console.log)

1 个答案:

答案 0 :(得分:1)

JavaScript没有提供明确的方法来限制函数接受的参数数量。

但是,您可以通过将原始函数包装在箭头函数中来实现此目的,例如:

const log1 = first => console.log(first)
const log2 = (first, second) => console.log(first, second)
// ...

const names = ["John", "Jack", "Jake"]

names
.map(log1)

一种更可重用和可扩展的方法是创建一个limitParams函数,该函数将给定函数接受的参数数量限制为指定数量:

const limitParams = n => f => (...params) => f(...params.slice(0, n))

const log1 = limitParams(1)(console.log)
const log2 = limitParams(2)(console.log)
// ...

const names = ["John", "Jack", "Jake"]

names
.map(log1)