1

你可以在JavaScript中有多个可选参数吗你可以在JavaScript中有多个可选参数吗?

假设你有一个函数dog,它需要3个参数,一个是必需的,另一个是可选的。

dog(dogsName, [tripsOutOfTheCountry], [numberOfDoctorsVisits])

我知道你可以检查未定义但如果这个人不提供tripsOutOfTheCountry,因为它是可选的,只是提供他们的想法是numberOfDoctorsVisits。

运行示例:

dog("Rusty", 10)

他们进入10 numberofDoctorsVisits离开tripsOutOfTheCountry空白,因为它是可选的。

所以,真正的程序似乎tripsOutOfTheCountry为10,这实在是numberofDoctorsVisits

有什么办法避免这种情况。我认为除了用户输入0作为tripsOutOfTheCountry之外,没有其他解决办法。

Modifiying上面的例子dog("Rusty, 0, 10)

我只是冒充这个问题,因为我不知道这是否是可能的。

P.S.抱歉的老式的例子

回答

1

这是任何语言不支持呼叫时命名参数,但只传递参数位置相同的问题。如果你能够明确规定哪一个论点,你可以手动找出什么是什么;例如如果参数具有不同的类型(如数字和函数),则可以测试分配给哪些内容的内容,并根据它们的预期类型和顺序来移动它们。许多想要公开灵活API的库都可以这样做,例如只需看看this jQuery method允许的变体。这一切都在你身上,Javascript完全不能帮你。

通常的方式做到这一点,而不是在于传递对象有明确的名称:

dog({ name: 'Rusty', numberOfDoctorsVisits: 10 }) 
相关问题