尽管在Javascript中有默认参数,如何传递额外的参数?

时间:2017-04-10 11:46:16

标签: javascript function

考虑示例

var example = function(a = 10, b = 15, c) {
 return c;
}

所以,我想仅使用example的值来调用c函数。像,

example(20); // should return 20, without disturbing the values of a and b

我将如何在JavaScript中执行此操作?

5 个答案:

答案 0 :(得分:3)

你想要的是使用destructring赋值可以实现,但它需要一些mods。我可以看到你正在使用es2015 / es6代码来设置默认值。你可能会考虑这个:

var example = function([a = 10, b = 15, c]) {
   console.log(a,b, c);
   //return c;
}

example([,,20]);

答案 1 :(得分:1)

您应该考虑在函数声明的末尾使用预定义变量:

var example = function(a, b = 10, c = 15 ) {
    return a;
}

结果将是

example(20); // ->> 20

答案 2 :(得分:0)

当您调用示例时,您可以将null作为ab的参数传递。

var example = function(a = 10, b = 15, c) {
 return c;
}

console.log(example(null, null, 20))

或者你可以只使用object作为参数。

var example = function(obj) {
 obj.a = obj.a || 10;
 obj.b = obj.b || 15;
 return obj.c;
}

console.log(example({c: 20}))

答案 3 :(得分:0)

您可能不得不使用对象:

var example = function(passed_options) {
   $.extend( default_options, passed_options );

   return c;
}

希望这有帮助。

示例代码段

var example = function( passed_options ) {
   $.extend( {a: 10, b: 15}, passed_options );

   return passed_options.c;
}

console.log( example({c: 20}) );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 4 :(得分:0)

您可以使用参数对象来模拟命名参数:

var example = function(params) {
    const a = params.a || 10;
    const b = params.b || 15;
    const c = params.c || 20;
}

并调用:

example({c:42});