DEV Community

Discussion on: The Mediator Pattern in JavaScript

Collapse
 
remco profile image
Remco

I was about to write an elaborate explanation, but Douglas Crockford already wrote an extensive article about this 😄:

crockford.com/javascript/private.html

The keyword is "closure", an example is visible in a constructor-function:

function Person(firstName, lastName) {
  function fullName() {
    return `${firstName} ${lastName}`;
  }

  this.introduce = function() {
    console.log(fullName());
  }
}

When a Person is created we can call introduce on it, but not fullName, essentially making fullName private.

Keep in mind, closures are not limited to constructors! A closure is defined as "a function with its variable scope". Simplified that means that a function 'remembers' the scope it was defined in.

I hope it helps!

For more info you can check developer.mozilla.org/en-US/docs/W...