Javascript:仅在函数中使用特定参数

时间:2014-07-06 12:56:53

标签: javascript function-parameter

我认为这是一个初学者的问题:如何解决函数中的特定参数而忽略其他参数?

示例:

http://jsfiddle.net/8QuWj/

function test(para_1, para_2, para_3) {
   if (para_3 == true) {
    alert('only the third parameter was successfully set!');
   }
}

test(para_3=true);

我想单独决定是否在函数中使用某个参数。

3 个答案:

答案 0 :(得分:2)

您可以使用if(param)分别检查每个参数,例如:

function test(para_1, para_2, para_3) {
    if (para_1) {
        // First parameter set
    }
    if (para_2) {
        // Second parameter set
    }
    if (para_3) {
        // Third parameter set
    }
}

一般来说,不能只设置一个参数并期望它是第三个参数,因为它会自动将其设置为第一个参数,其余2个参数设置为undefined。因此,如果你想调用你的函数并且只有第三组,那么很可能你会做一个

test(null, null, 'this_is_set');

答案 1 :(得分:1)

在JavaScript中无法传递命名参数。您可以做的最好的事情是接受一个对象作为单个参数,然后从那里决定要设置哪些属性。

function test(obj) {
   if (obj.para_3 == true) {
    alert('only the third parameter was successfully set!');
   }
}

test({para_3:true});

答案 2 :(得分:0)

您还可以应用存储在数组中的参数。参数数组的entrys将映射到函数的参数。

var arg = [];
arg[2] = true;
test.apply(this, arg);

另一种方法是将其他参数设置为undefined:

test(undefined, undefined, true);

http://jsfiddle.net/8QuWj/2/