代码之家  ›  专栏  ›  技术社区  ›  Mateja Petrovic

限制Javascript函数接受的参数数

  •  0
  • Mateja Petrovic  · 技术社区  · 7 年前

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

    const names = ["John", "Jack", "Jake"]
    
    names
    .map(console.log)
    1 回复  |  直到 7 年前
        1
  •  1
  •   Mateja Petrovic    7 年前

    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)