JavaScriptben mi értelme a 'closure'-öknek?
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;
}
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:
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, ...);
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!