Files
Randell Dawson 1494a50123 fix(guide): restructure curriculum guide articles (#36501)
* fix: restructure certifications guide articles
* fix: added 3 dashes line before prob expl
* fix: added 3 dashes line before hints
* fix: added 3 dashes line before solutions
2019-07-24 13:29:27 +05:30

966 B

title
title
Use Closure to Protect Properties Within an Object from Being Modified Externally

Use Closure to Protect Properties Within an Object from Being Modified Externally


Problem Explanation

Just like in the example given, rather than declaring the weight variable with the this keyword, the let keyword must be used to declare it as a private variable. This way it can only be accessed inside the Bird function. The getWeight method must then be added inside the Bird function to access the weight variable.


Solutions

Solution 1 (Click to Show/Hide)
function Bird() {
  let weight = 15;

  this.getWeight = function() {
    return weight;
  };
}
Solution 1 (Click to Show/Hide)

In ES6 syntax we can make the function a bit less verbose:

function Bird() {
  let weight = 15;
  this.getWeight = () => weight;  
}