Guest User

Untitled

a guest
Apr 11th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. // J’aimerais avoir la possibilité que le mot de passe ne soit pas modifié par l’objet account ci-dessous …
  2. // Peux-tu compléter/modifier le code ?
  3.  
  4. const account = {
  5. username: "marijn",
  6. _password: "xyzzy",
  7.  
  8. get password() {
  9. return this._password;
  10. },
  11.  
  12. set password(value) {
  13. // J'aurai normalement renvoyé une erreur mais je voulais juste montrer quelque chose de simple.
  14. console.log(
  15. `Mot de passe actuel: ${this.password}. Mot de passe voulu: ${value}.`
  16. );
  17. console.log("Vous n'êtes pas autorisé à modifier ce mot de passe.");
  18. }
  19. };
  20.  
  21. console.log("Using Getters/Setters directly:");
  22. console.log();
  23.  
  24. account.password = "s3cret";
  25.  
  26. console.log(`Mot de passe actuel: ${account.password}.`);
  27.  
  28. // Using proxies
  29. console.log();
  30. console.log("Using Proxies:");
  31. console.log();
  32.  
  33. const accountB = {
  34. username: "marijn",
  35. password: "xyzzy"
  36. };
  37.  
  38. const handler = {
  39. get(target, key) {
  40. console.info(`Lecture de l'attribut "${key}".`);
  41. return target[key];
  42. },
  43. set(target, key, value) {
  44. console.log(`Tentative de changement de l'attribut "${key}"...`);
  45. console.log(`Valeur actuelle: "${target.password}".`);
  46. console.log(`Valeur voulu: "${value}".`);
  47.  
  48. if (key === "password") {
  49. console.log();
  50. console.log("Tentative refusée.");
  51. console.log();
  52. return false;
  53. }
  54. return true;
  55. }
  56. };
  57.  
  58. const proxy = new Proxy(accountB, handler);
  59. console.log(`Mot de passe actuel: ${proxy.password}.`);
  60. proxy.password = "s3cret";
  61. console.log("Mot de passe actuel:", proxy.password);
Add Comment
Please, Sign In to add comment