Diferència entre revisions de la pàgina «Solucio clausures»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «<source lang="java"> function Persona(){ var anys = 0; this.getAnys = function(){ return anys; }; this.envellir = function(){ anys++; }; } var joan = new Person…».)
 
Línia 65: Línia 65:
 
var dirNombre=dir667();
 
var dirNombre=dir667();
  
dirNombre();
+
dirNombre();     //mostra '667'
 
</source>
 
</source>
  
  
 
'''Exercici 4. Digues que mostra.'''
 
'''Exercici 4. Digues que mostra.'''
 
<source lang="java">
 
 
function estableixUnesGlobals() {
 
// variable global que acaba dins de la clausura
 
var num = 444;
 
// emmagatzema algunes referències a funcions com a variables globals
 
gAlertaNombre = function() { alert(num); }
 
gIncrementaNombre = function() { num++; }
 
gPonNombre = function(x) { num = x; }
 
}
 
 
 
getAlertaNombre();
 
getIncrementeNombre();
 
gPonNombre(5);
 
gPonNombre(-8888);
 
alert(getAlertaNombre.toString());
 
</source>
 
 
'''Exercici 5. Digues que mostra.'''
 
  
 
<source lang="java">
 
<source lang="java">

Revisió del 13:12, 4 nov 2014

function Persona(){
	var anys = 0;
	this.getAnys = function(){
		return anys;
	};
	this.envellir = function(){
		anys++;
	};
}

var joan = new Persona();
joan.envellir();

alert("no podem accedir: " + joan.anys);  /*mostra 'no podem accedir: undefined'*/
alert("getanys: " + joan.getAnys());      /*mostra 'getanys: 1'*/


Exercici 1. Digues que mostra.

function concatenar(s1) {
      return function(s2) {
        return s1 + ' ' + s2;
      };
}

var diHola = concatenar("Hola");

alert( diHola("visitante") );    /*mostra 'Hola visitante'*/


Exercici 2. Digues que mostra.

function dirHola2(nom) {
 var texto = 'Hola ' + nom; // local variable
 var dirAlerta= function() { alert(texto); }
 return dirAlerta;
}

var dir2=dirHola2('Joan');

dir2();               /*mostra 'Hola Joan'*/


Exercici 3. Digues que mostra.

function dir667() {
 // Variable local que acaba en la clausura
 var num = 666;
 var dirAlerta= function() { alert(num); }
 num++;
 return dirAlerta;
}


var dirNombre=dir667();

dirNombre();      //mostra '667'


Exercici 4. Digues que mostra.

var unicId = (function() { 
  var comptador = 0; 
  return function() { 
    return "únic-id-" + comptador++; 
  }; 
})(); // Funció que s'auto-invoca i executa automàticament  
 

unicId(); 

unicId(); 

unicId();