Qual è il gergo corretto per riferirsi a una variabile avvolta all'interno di una chiusura di funzione?

3

In JavaScript, non esiste una variabile "privata". Per ottenere l'incapsulamento e l'occultamento delle informazioni in JavaScript, posso avvolgere una variabile all'interno di una chiusura di funzione, in questo modo:

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'

Poiché non chiamo i una variabile privata in JavaScript, come la chiamo?

    
posta Rice Flour Cookies 04.04.2012 - 21:39
fonte

1 risposta

7

Secondo wikipedia si chiamano "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.

Anche se è probabilmente meglio chiamarli erroneamente variabili private in modo che le persone capiscano cosa intendi.

    
risposta data 04.04.2012 - 21:56
fonte

Leggi altre domande sui tag