javascript函数应该有可选参数和选项吗?

javascript函数应该有可选参数和选项吗?,javascript,function,parameters,meteor,arguments,Javascript,Function,Parameters,Meteor,Arguments,我一直在使用Meteor框架,我在文档中注意到一些函数被声明为函数(参数,[options]),这似乎很好。但是,其他函数被声明为函数([参数],[选项])。如果参数是可选的,这不意味着它是可选的吗 例如,在文档中定义如下:Meteor.absoluteUrl([path],[options])。[path]周围的括号表示不必传递,将使用默认值。但是,在下面的部分: 本质上,有人可以解释参数、参数、选项和可选选项之间的区别。参数和选项之间没有具体的定义。对我来说,当某个项更常用或更重要地用于函数

我一直在使用Meteor框架,我在文档中注意到一些函数被声明为
函数(参数,[options])
,这似乎很好。但是,其他函数被声明为
函数([参数],[选项])
。如果参数是可选的,这不意味着它是可选的吗

例如,在文档中定义如下:
Meteor.absoluteUrl([path],[options])
[path]
周围的括号表示不必传递,将使用默认值。但是,在下面的部分:


本质上,有人可以解释参数、参数、选项和可选选项之间的区别。

参数和选项之间没有具体的定义。对我来说,当某个项更常用或更重要地用于函数目的时(即使它是可选的),我会将它作为选项的参数。当它是可以影响结果的许多设置之一时,我会选择它,但这些设置通常不会被使用,并且通常不会作为函数目的的中心(即使它们有一些效果)

在您提供的示例中,
[path]
参数对于函数的逻辑非常重要,它将大大有助于代码的可读性,以便将其显示为参数,并且可能比选项更常用


Javascript中的可选参数在使用中也有一些限制。只有在能够(通过检查所传递参数的类型或值)准确地判断调用方对参数的意图以及传递的参数是函数的参数时,才能使用可选参数


例如,您不能让一个函数接受两个可选参数,并且这两个参数都是布尔值或都是字符串。如果只传递了一个参数,那么您无法判断调用方打算传递的两个可选参数中的哪一个。因此,有时您可能会选择一组明确的可选参数(通常具有不同的类型),然后将其他所有参数放入一个选项对象中,每个选项都在该对象中命名,这样就不会有歧义。

如果您希望我投上一票,请在您的问题中包含一些代码或质量上下文;)如果您提供Meteor的具体示例以供讨论/评论,这将更容易回答。已编辑@苏菲德,我一点也不在乎投票。我想知道答案。@RichLitt没关系,如果你想知道答案,下次就不要发布垃圾问题。@RichLitt人只是厌倦了低质量的问题。不知道一个主题并不意味着你不能提出一个很好的问题,这就是这个网站的目的。这也不是一个我们必须互相牵手的地方。
Generate an absolute URL pointing to the application. The server reads from the ROOT_URL environment variable to determine where it is running. This is taken care of automatically for apps deployed with meteor deploy, but must be provided when using meteor bundle.

Arguments
path String
A path to append to the root URL. Do not include a leading "/".

Options
secure Boolean
Create an HTTPS URL.

replaceLocalhost Boolean
Replace localhost with 127.0.0.1. Useful for services that don't recognize localhost as a domain name.

rootUrl String
Override the default ROOT_URL from the server environment. For example: "http://foo.example.com"