Existe-t-il un moyen de définir l'attribut par défaut d'un objet Javascript de telle sorte que :
let emptyObj = {};
// do some magic
emptyObj.nonExistingAttribute // => defaultValue
Existe-t-il un moyen de définir l'attribut par défaut d'un objet Javascript de telle sorte que :
let emptyObj = {};
// do some magic
emptyObj.nonExistingAttribute // => defaultValue
La façon dont je réalise ceci est avec le object.assign
fonction
const defaultProperties = { 'foo': 'bar', 'bar': 'foo' };
const overwriteProperties = { 'foo': 'foo' };
const newObj = Object.assign({}, defaultProperties, overwriteProperties);
console.log(defaultProperties); // {"foo": "bar", "bar": "foo"}
console.log(overwriteProperties); // { "foo": "foo" };
console.log(newObj); // { "foo": "foo", "bar": "foo" }
Je pense que l'approche la plus simple consiste à utiliser Object.assign
.
Si vous avez cette classe :
class MyHelper {
constructor(options) {
this.options = Object.assign({
name: "John",
surname: "Doe",
birthDate: "1980-08-08"
}, options);
}
}
Vous pouvez l'utiliser comme ceci :
let helper = new MyHelper({ name: "Mark" });
console.log(helper.options.surname); // this will output "Doe"
Documentation (avec polyfill) : https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
TOUT attribut non existant ou simplement un nom d'attribut CONNU ?
1 votes
let o = new Proxy({}, { get: (o, k) => k in o ? o[k] : 'some default value' }; console.log(o.key1)