JavaScript中可以有多个可选参数吗?
假设您有一个函数狗,它带有3个参数,一个为必需参数,两个为可选参数。
dog(dogsName, [tripsOutOfTheCountry], [numberOfDoctorsVisits])
我知道您可以检查未定义的内容,但是如果此人不提供tripsOutOfTheCountry,该怎么办,因为它是可选的,只提供他们认为的numberOfDoctorsVisits。
示例运行:
dog("Rusty", 10)
他们为numberofDoctorsVisits输入10,将tripsOutOfTheCountry留为空白,因为它是可选的。
因此,实际上该程序似乎将TripOutTheCountry设置为10,这实际上是number of DoctorsVisits
有什么办法可以避免这种情况。我认为除了用户为tripsOutOfTheCountry输入0以外,没有其他办法。
将上面的示例修改为 dog("Rusty, 0, 10)
我只是提出这个问题,因为我不知道是否可能。
PS抱歉的老土例子
在任何不支持调用时命名实参,而仅在位置上传递实参的语言中,这都是相同的问题。如果您可以制定明确的规则来识别每个参数,则可以手动找出含义。例如,如果参数具有不同的类型(例如数字和函数),则可以测试分配给什么的内容,并根据其预期的类型和顺序来转移内容。许多想要公开灵活API的库都可以做到这一点,例如,只需看看jQuery方法允许的变体即可。这一切都在您身上,JavaScript根本无法帮助您。
通常,执行此操作的通常方法是传递具有显式名称的对象:
dog({ name: 'Rusty', numberOfDoctorsVisits: 10 })
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句