我的方法的參數之一應該是一個對象。 像往常一樣,我可以在原型中指定它的默認值。使默認值適用於對象參數的單個字段
但是這個默認值只用於在通話中完全省略這個參數。
然而,我想爲它在現場級應用:如果我提供一個值,但省略某些領域中存在的默認,就應該從它填補:未指定
function method(id, data, options = { original: true, duplicate: true }) {
console.log(options.original);
console.log(options.duplicate);
}
method("id", "data", { duplicate: false })
// undefined <= I expect this to be true
// false
method("id", "data")
// true
// true
任何參數在默認情況下也應該被接受和傳遞的是:
method("id", "data", { duplicate: false, other: false })
如果有任何句法設施,我可以使用是什麼?而且,即使沒有,我也必須使用自定義邏輯,我可以以某種方式從原型中提取默認值嗎?
ES6 Object Destructuring Default Parameters實現了類似的東西,但它將「字段」轉換爲單獨的變量(雖然我希望它們留在對象內),並且它不允許原型中未指定的字段。
De罰款「我希望它能夠通過其他選項,不僅是我所定義的」。他們應該如何表現? –
在我上面的方法函數中,我可以爲選項添加另一個屬性,例如:'other:false'。但所有的答案都沒有解決這個問題。 – shankshera
@ivan_pozdeev這是一個相當大的編輯。你確定它遵循OP的意圖嗎?提出一個新問題可能會更好。 – Bergi