Skip to content

Commit be00e6d

Browse files
committed
docs: translate new section
1 parent 821cf24 commit be00e6d

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

1-js/07-object-properties/02-property-accessors/article-fr.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,35 @@ Object.defineProperty({}, 'prop', {
150150

151151
value: 2
152152
});
153-
```
153+
```
154+
155+
## Des getters/setters plus intelligent
156+
157+
Les Getters/setters peuvent être utilisés comme des enveloppes autour des "réelles" valeurs de propriété pour gagner plus de contrôles sur leurs opérations.
158+
159+
Par exemple, si nous voulons interdire les noms trop court pour `user`, nous pouvons avoir un setter `name` and garder la valeur dans une propriété séparée `_name` :
160+
161+
```js run
162+
let user = {
163+
get name() {
164+
return this._name;
165+
},
166+
167+
set name(value) {
168+
if (value.length < 4) {
169+
alert("Name is too short, need at least 4 characters");
170+
return;
171+
}
172+
this._name = value;
173+
}
174+
};
175+
176+
user.name = "Pete";
177+
alert(user.name); // Pete
178+
179+
user.name = ""; // Le nom est trop court...
180+
```
181+
182+
Donc, le nom est stocké dans la propriété `_name`, et l'accés est fait par le getter et le setter.
183+
184+
Techniquement, le code extérieur est capable d'accéder directement à la propriété en utilisant `user._name`. Mais il y une convention très connue selon laquelle les propriétés commençant par un underscore `"_"` sont internes et ne devraient pas être touché depuis l'extérieur des objets.

0 commit comments

Comments
 (0)