考慮例如儘管在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