如何限制javascript函数只接受一个参数

时间:2015-02-01 20:24:14

标签: javascript

我创建了一个简单的javascript函数来确定第n个斐波纳契数。它有效,但我试图找出为什么它传递两个参数时仍然有效。

function fib(n){
    if (n <= 1){
        return n; 
    }
    else if(n > 1){
        return fib(n-1) + fib(n-2); 

    }
}

因此,当我运行fib(10)时,我得到55的正确输出。但是如果我要做类似的事情

fib(1,2) 

我希望得到Undefined,但方法是输出1.

我的问题是如何保持javascript方法只接受一定数量的参数?在我的情况下,我只想让fib接受一个参数。

2 个答案:

答案 0 :(得分:1)

在javascript中,您不能仅根据参数的数量来改变功能。可以使用零个或多个参数调用所有函数。由函数决定如何以及是否将访问它们(通过mamed参数或arguments对象)。

基本上你可以检查并查看是否有多个参数可用并抛出异常,但为什么要这样做呢?它不太可能帮助你更快地找到错误,除此之外没有任何好处 - 该功能将以相同的方式运行。

答案 1 :(得分:0)

JavaScript非常宽容。你可以像腺病一样做你想做的事情:

if (arguments.length > 1) throw "Too many arguments exception";

我真的没有理由为什么你应该这样做。但是你可以担心以下情况。

fib(true) // true
fib(false) // false
fib("wat") // undefined