Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // J’aimerais avoir la possibilité que le mot de passe ne soit pas modifié par l’objet account ci-dessous …
- // Peux-tu compléter/modifier le code ?
- const account = {
- username: "marijn",
- _password: "xyzzy",
- get password() {
- return this._password;
- },
- set password(value) {
- // J'aurai normalement renvoyé une erreur mais je voulais juste montrer quelque chose de simple.
- console.log(
- `Mot de passe actuel: ${this.password}. Mot de passe voulu: ${value}.`
- );
- console.log("Vous n'êtes pas autorisé à modifier ce mot de passe.");
- }
- };
- console.log("Using Getters/Setters directly:");
- console.log();
- account.password = "s3cret";
- console.log(`Mot de passe actuel: ${account.password}.`);
- // Using proxies
- console.log();
- console.log("Using Proxies:");
- console.log();
- const accountB = {
- username: "marijn",
- password: "xyzzy"
- };
- const handler = {
- get(target, key) {
- console.info(`Lecture de l'attribut "${key}".`);
- return target[key];
- },
- set(target, key, value) {
- console.log(`Tentative de changement de l'attribut "${key}"...`);
- console.log(`Valeur actuelle: "${target.password}".`);
- console.log(`Valeur voulu: "${value}".`);
- if (key === "password") {
- console.log();
- console.log("Tentative refusée.");
- console.log();
- return false;
- }
- return true;
- }
- };
- const proxy = new Proxy(accountB, handler);
- console.log(`Mot de passe actuel: ${proxy.password}.`);
- proxy.password = "s3cret";
- console.log("Mot de passe actuel:", proxy.password);
Add Comment
Please, Sign In to add comment