SlideShare a Scribd company logo
1 of 6
A closure szerepe a JavaScript alapú fejlesztésben Gyürüs Máté
Mi a Closure? A Javascript függvények látják, és használhatják a függvénnyel egy scope-ban definiált változókat, és ezen tulajdonság kiaknázását nevezhetjük Closure-nek. Alkalmazási területei: - dinamikusan létrehozható függvények - privát változók - eseménykezelők
Mire is jó? I. Dinamikusan létrehozható függvények – kihasználva azt, hogy javascript függvények függvénynel is vissztérhetnek: Pl: function times(n) { return function(x) { return n * x; } } var twoTimes = times(2); Ekkor a twoTimes(21) == 42
Mire is jó? II. Privát változók definiálása - ez csak Closure segítségével valósítható meg. Pl: function testFunction(input) { var var1 = input; var var2 = 'valami'; return { firstfunc: function() {alert('egyik function '+var1)},   secondfunc: function(){alert('másik  '+var2)} } } test = testFunction('szevasz'); test.secondfunc(); Ez esetben a var1 és var2 változók privátok lettek.
Mire is jó? III. Eseménykezelők – pl ajax Pl (jquerys ajax megoldás): ResDiv = $( "#results"); $.ajax({ url: "test.html", cache: false, success: function(html){ ResDiv.append(html); } }); A céldiv külső változóban van definiálva.
Zárszó További closure alkalmazások: A google létrehozott egy closure nevű keretrendszert, melyhez csodás closure compilert is fejlesztett, mely a kód tömörítésére szolgál, ráadásul némileg optimalizálja is azt, ám az eddigiekhez vajmi kevés köze van, konkrétan nulla. Üdvözlettel: Gyürüs Máté

More Related Content

Viewers also liked (11)

Vardges petrosyan 22.05.13
Vardges petrosyan 22.05.13Vardges petrosyan 22.05.13
Vardges petrosyan 22.05.13
 
Duncan Gordon et al., Physica B, 385-386, (2006), 511 - 513.
Duncan Gordon et al., Physica B, 385-386, (2006), 511 - 513.Duncan Gordon et al., Physica B, 385-386, (2006), 511 - 513.
Duncan Gordon et al., Physica B, 385-386, (2006), 511 - 513.
 
Clase 10 metabolitos primarios
Clase 10 metabolitos primariosClase 10 metabolitos primarios
Clase 10 metabolitos primarios
 
Sej Sosioeko sbh & srwk
Sej Sosioeko sbh & srwkSej Sosioeko sbh & srwk
Sej Sosioeko sbh & srwk
 
Aksel Bakunc 27.06.13
Aksel Bakunc 27.06.13Aksel Bakunc 27.06.13
Aksel Bakunc 27.06.13
 
Effectivenotemaking (2)
Effectivenotemaking (2)Effectivenotemaking (2)
Effectivenotemaking (2)
 
Bulletin source versus residence - jfb and rts
Bulletin   source versus residence - jfb and rtsBulletin   source versus residence - jfb and rts
Bulletin source versus residence - jfb and rts
 
Notice, agenda & minutes of meeting (2)
Notice, agenda & minutes of meeting (2)Notice, agenda & minutes of meeting (2)
Notice, agenda & minutes of meeting (2)
 
Astract summary and precis writing
Astract summary and precis writingAstract summary and precis writing
Astract summary and precis writing
 
Clase 5 calidad de las plantas medicinales
Clase 5 calidad de las plantas medicinalesClase 5 calidad de las plantas medicinales
Clase 5 calidad de las plantas medicinales
 
Neo liberalism
Neo liberalismNeo liberalism
Neo liberalism
 

Closure

  • 1. A closure szerepe a JavaScript alapú fejlesztésben Gyürüs Máté
  • 2. Mi a Closure? A Javascript függvények látják, és használhatják a függvénnyel egy scope-ban definiált változókat, és ezen tulajdonság kiaknázását nevezhetjük Closure-nek. Alkalmazási területei: - dinamikusan létrehozható függvények - privát változók - eseménykezelők
  • 3. Mire is jó? I. Dinamikusan létrehozható függvények – kihasználva azt, hogy javascript függvények függvénynel is vissztérhetnek: Pl: function times(n) { return function(x) { return n * x; } } var twoTimes = times(2); Ekkor a twoTimes(21) == 42
  • 4. Mire is jó? II. Privát változók definiálása - ez csak Closure segítségével valósítható meg. Pl: function testFunction(input) { var var1 = input; var var2 = 'valami'; return { firstfunc: function() {alert('egyik function '+var1)}, secondfunc: function(){alert('másik '+var2)} } } test = testFunction('szevasz'); test.secondfunc(); Ez esetben a var1 és var2 változók privátok lettek.
  • 5. Mire is jó? III. Eseménykezelők – pl ajax Pl (jquerys ajax megoldás): ResDiv = $( "#results"); $.ajax({ url: "test.html", cache: false, success: function(html){ ResDiv.append(html); } }); A céldiv külső változóban van definiálva.
  • 6. Zárszó További closure alkalmazások: A google létrehozott egy closure nevű keretrendszert, melyhez csodás closure compilert is fejlesztett, mely a kód tömörítésére szolgál, ráadásul némileg optimalizálja is azt, ám az eddigiekhez vajmi kevés köze van, konkrétan nulla. Üdvözlettel: Gyürüs Máté