AlvinSeville7cf

Person constructor

Aug 29th, 2021 (edited)
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. function Person(name, middlename, lastname) {
  4.   this.name = ""
  5.   this.middlename = ""
  6.   this.lastname = ""
  7.  
  8.   Object.defineProperties(this, {
  9.     name: {
  10.       get: function() {
  11.         return name;
  12.       },
  13.       set: function(value) {
  14.         if (!/^\w+$/.test(value))
  15.           throw new Error(`name must contain only word characters`)
  16.         name = value;
  17.       }
  18.     },
  19.     middlename: {
  20.       get: function() {
  21.         return middlename;
  22.       },
  23.       set: function(value) {
  24.         if (!/^\w+$/.test(value))
  25.           throw new Error(`middlename must contain only word characters`)
  26.         middlename = value;
  27.       }
  28.     },
  29.     lastname: {
  30.       get: function() {
  31.         return lastname;
  32.       },
  33.       set: function(value) {
  34.         if (!/^\w+$/.test(value))
  35.           throw new Error(`lastname must contain only word characters`)
  36.         lastname = value;
  37.       }
  38.     },
  39.   });
  40.  
  41.   this.name = name;
  42.   this.middlename = middlename;
  43.   this.lastname = lastname;
  44. }
  45.  
  46. Person.prototype.toString = function() {
  47.   return `${this.name} ${this.middlename} ${this.lastname}`;
  48. }
  49.  
  50. function main() {
  51.   let p = new Person("A", "B", "C");
  52.   console.log(p.toString());
  53.   p.name = "D";
  54.   console.log(p.name);
  55. }
  56.  
Add Comment
Please, Sign In to add comment