限制Javascript函数接受的参数数

限制Javascript函数接受的参数数,javascript,function,parameters,Javascript,Function,Parameters,如何限制Javascript函数接受的参数数量 因此,此代码段只记录每个值,不包括索引和数组: const name=[“约翰”、“杰克”、“杰克”] 名字 .map(console.log)Javascript没有提供一种明确的方法来限制函数接受的参数数量 但是,您可以通过将原始函数包装在箭头函数中来完成此操作,如下所示: const log1=first=>console.log(第一个) constlog2=(第一,第二)=>console.log(第一,第二) // ... 常量名称

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

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

const name=[“约翰”、“杰克”、“杰克”]
名字

.map(console.log)
Javascript没有提供一种明确的方法来限制函数接受的参数数量

但是,您可以通过将原始函数包装在箭头函数中来完成此操作,如下所示:

const log1=first=>console.log(第一个)
constlog2=(第一,第二)=>console.log(第一,第二)
// ...
常量名称=[“约翰”、“杰克”、“杰克”]
名字

.map(log1)
btw,
map
正在返回一个新数组。在这种情况下,
forEach
将更适合。这将使包装函数中的
this
无法更改,因为箭头函数禁止更改。更准确地说,它应该使用普通函数
function limitParameters(n){return function(f){return function(){return f.apply(this,Array.prototype.slice.call(arguments,0,n))}}}
如果要限制的函数在其体内引用“this”,这是一个很大的变化,在OOP代码中经常如此。不过,我喜欢函数式方法,即简单地参数化所有内容,并保持函数的孤立性和纯粹性。在我看来,它更容易理解和维护,但这又取决于你的风格。虽然我同意纯函数,但事实是JS确实使用了
这个
,通过删除它,你可能违反了一些合同。例如,您可以通过使用迭代方法的第二个参数——
someArray.forEach(myFunction,newThis)
来更改
this
这可能是一种“Javascript方式”,但没有人强迫您使用它。你必须确保你和你的团队在风格上是一致的。一旦你为一个项目选择了一个,一定要坚持下去。当Mark讨论相关主题时,您可能会发现此视频很有趣:。