javascript - 允许字符串或数组作为函数的参数是一个好习惯吗?

标签 javascript

这是我正在谈论的示例:

有了 grunt,你就有了这个功能:

grunt.file.match([options, ] patterns, filepaths)

在文档中,他们说:

Both the patterns and filepaths argument can be a single string or array of strings.

那么,允许同一参数使用不同类型是一个好习惯吗?

Official doc

最佳答案

简而言之,是的。在其他语言中,您可以使用不同的参数重载方法。在 javascript 中,你没有这种奢侈,但我们拥有的是弱类型声明。所以 javascript 并不关心你传递的内容,你的工作就是确保你的函数接受所有可能的参数。

编辑 正如 @jwatts1980 所建议的,您的函数应该足够灵活,可以处理任何潜在的参数。如果您有一个名为 name 的参数,您应该预期它偶尔会为 null,并且您可能会收到一个 names 数组,在这种情况下,您可以选择迭代 names (name) 并执行您对一个 name 执行的任何操作。

关于javascript - 允许字符串或数组作为函数的参数是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636030/

相关文章:

javascript - Mongoose .catch block 在多个地方是相同的。我该如何避免这种情况?

javascript - 更改所有具有 id= 值的元素

javascript - 获取 'px' 中的大小而不是百分比

javascript - 如何在 div 上添加 jQuery 框

javascript - "for"在 NodeList 上循环以更改类名

javascript - jQuery Mobile ListView ,将投票按钮添加到行元素

javascript - 流程,如何继承类函数类型?

javascript - Uncaught Error : [$rootScope:infdig] when implementing an elapsed time calculator

javascript - Javascript 中 opener 的跨域更新哈希

Javascript argument.callee 的用途是什么