3

In JavaScript, there is no such thing as a "private" variable. In order to achieve encapsulation and information hiding in JavaScript, I can wrap a variable inside a function closure, like so:

var counter = (function() {    
    var i = 0;
    var fn = {};
    fn.increment = function() { i++; };
    fn.get = function() { return i; };
    return fn;
{)();    
counter.increment();
counter.increment();
alert(counter.get()); // alerts '2'

Since I don't call i a private variable in JavaScript, what do I call it?

Mike L.
  • 642
  • 5
  • 16
Vivian River
  • 2,397
  • 5
  • 21
  • 32

1 Answers1

7

According to wikipedia they're called "upvalues".

A closure allows a function to access variables outside its immediate lexical scope. An upvalue is a free variable that has been bound (closed over) with a closure. The closure is said to "close over" its upvalues.

Although it's probably better to wrongly call them private variables so people will understand what you mean.

Esailija
  • 5,364
  • 1
  • 19
  • 16