Ce que tu demandes me semble impossible.
Tu essaies de récupérer la valeur d'une propriété d'un objet en cours de création.
L'objet n'est pas en mémoire, ses propriétés ne sont donc pas accessibles.
Donc tenter de faire propsZipe.input.bordered ou this.input.bordered à l'intérieur même de cet objet te renverra dans tous les cas une erreur.
La seule solution est effectivement d'assigner la valeur de border hors de l'objet lui-même.
Si ton seul soucis est de t'assurer que lorsque tu crées l'objet, une valeur par défaut soit appliquée à border et qu'il s'agit de la valeur définit dans bordered ; alors tu peux résoudre ton problème à l'aide du pattern Factory:
// Factory appliqué uniquement à l'input
function inputFactory (bordered) {
return {
"bordered": bordered
"border": bordered
}
}
// Factory appliqué à l'ensemble de l'objet
function propsZipeFactory(validateStatus, label, help, bordered) {
return {
item: {
"validateStatus": validateStatus,
"label": label,
"help": help,
},
"input": inputFactory(borered),
}
}
Maintenant quand tu créés un objet propsZipe, construit-le à l'aide de la Factory et tu t'assureras qu'il soit toujours dans un état cohérent.