J'ai une fonction qui ajoute une clé à l'objet entrant, mais on m'a dit d'utiliser l'opérateur de propagation pour cela, on m'a dit que je pouvais utiliser l'opérateur de propagation pour créer un nouvel objet avec les mêmes propriétés, puis définir isAvailable on it .
return new Partner(ServerConfig, capabilities, initialState)
}
class Partner {
constructor (ServerConfig, capabilities, initialState) {
initialState.isAvailable = true
J'ai donc essayé quelque chose comme ça mais coulndt réussir, pouvez-vous m'aider? et confus, dois-je utiliser l'opérateur d'étalement de cette manière, revenir d'une fonction?
newObject = {}
// utilise ceci dans une fonction et obtient la valeur du retour
return {
value: {
...newObject,
...initialState
}
}
initialState.isAvailable = true
Les propriétés sont ajoutées dans l'ordre, donc si vous voulez remplacer les propriétés existantes, vous devez les mettre à la fin plutôt qu'au début:
return {
value: {
...initialState,
...newObject
}
}
Vous n'avez pas besoin de newObject
(sauf si vous l'avez déjà traîné), cependant:
return {
value: {
...initialState,
isAvailable: newValue
}
}
Exemple:
const o1 = {a: "original a", b: "original b"};
// Doesn't work:
const o2 = {a: "updated a", ...o1};
console.log(o2);
// Works:
const o3 = {...o1, a: "updated a"};
console.log(o3);