考虑例如尽管在Javascript中有默认参数,如何传递额外参数?
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中做到这一点?
考虑例如尽管在Javascript中有默认参数,如何传递额外参数?
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中做到这一点?
你应该考虑在函数声明的末尾使用预定义变量:
var example = function(a, b = 10, c = 15) {
return a;
}
那么结果将是
example(20); // ->> 20
你可以通过null
作为论据a
和b
当你调用例子。
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}))
你想要的是可以用destructring赋值来实现,但它需要一些mods。正如我所看到的,您正在使用es2015/es6代码来设置默认值。你可能会考虑这个问题:
var example = function([a = 10, b = 15, c]) {
console.log(a,b, c);
//return c;
}
example([,,20]);
您可能需要使用对象,而不是:
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>
您可以使用参数对象来模拟命名参数:
var example = function(params) {
const a = params.a || 10;
const b = params.b || 15;
const c = params.c || 20;
}
和调用:
example({c:42});
明确地传递undefined
应该做的伎俩:
var example = function(a = 10, b = 15, c) {
console.log(a, b, c);
return c;
}
example(11, 16, 20);
example(undefined, undefined, 20);
http://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a- JavaScript的功能#894877 – ZiTAL