InterviewHubPRO
Section Overview
Q225

Question 225 of 521

Part 4: Prototypes, Object Methods & Event Loop (174 - 253)

43%
JavaScript Internals (521 Qs)•Part 4: Prototypes, Object Methods & Event Loop (174 - 253)

Can I add getters and setters using defineProperty method

Yes, You can use the Object.defineProperty() method to add Getters and Setters. For example, the below counter object uses increment, decrement, add and subtract properties,

javascript
  var obj = { counter: 0 };

  // Define getters
  Object.defineProperty(obj, "increment", {
    get: function () {
      this.counter++;
      return this.counter;
    },
  });
  Object.defineProperty(obj, "decrement", {
    get: function () {
      this.counter--;
      return this.counter;
    },
  });

  // Define setters
  Object.defineProperty(obj, "add", {
    set: function (value) {
      this.counter += value;
    },
  });
  Object.defineProperty(obj, "subtract", {
    set: function (value) {
      this.counter -= value;
    },
  });

  obj.add = 10;
  obj.subtract = 5;
  console.log(obj.increment); //6
  console.log(obj.decrement); //5