Kezdőoldal » Számítástechnika » Programozás » JavaScriptben mi értelme a...

JavaScriptben mi értelme a 'closure'-öknek?

Figyelt kérdés

Mi a különbség az alábbiak között?



function multiplier(factor) {

return function(number) {

return number * factor;

};

}



function multiplier(factor, number) {

return number * factor;

}



2016. nov. 4. 07:35
 1/2 anonim ***** válasza:

function multiplier(factor) {

... return function(number) {

... ... return number * factor;

... };

}


Ennek sok értelme így nem nagyon van. Most így hívni miért jó? -> multiplier(3)(4)


Inkább akkor a 2. amit írtál.


De amúgy akkor van értelme az első résznek, ha névtelen fgv-ről van szó:

var valamifgv = function() {

... return "Ez egy szöveg";

}

valamifgv() //return: "Ez egy szöveg"


Vagy pepitában:

function alma() {

... return function(y) {

... ... return y;

... }

}

var x = alma();

x("Ez a bemenet") //return: "Ez a bemenet"


___ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____

A kérdésedből, hogy "closure" abból ez jutott eszembe:

[link]


var add = (function() {

... /**

... * Ide meg mindenféle program kód

... */

})();


Ezt általában akkor szoktam használni, ha valami jQuery plugint kell írni, és a jQuery nem támogatja a $ megnevezést, mert "passz, hogy miért". De a paramétereket fellehet sorolni (persze a "..." nem valid):


(function($, p1, p2, pontpontpont) {

... /**

... * Ide meg mindenféle program kód

... * Például: p1 néven éred el a param1-et

... */

})(jQuery, param1, param2, ...);

2016. nov. 4. 08:08
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
köszönöm szépen
2016. nov. 4. 21:47

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!