Hirdetés
- Mostantól több képkockát generálhat az új Arc meghajtó
- Önmagában is értékesíthetőnek tartja a Vera CPU-t az NVIDIA
- A sufni mélyén született a Galax Titan RTX Hall of Fame VGA
- Rég elfeledett képaránnyal nyúzhatjuk a múlt nagyjait az AYANEO kézikonzoljával
- Ráncfelvarrás után marad nagyjából ugyanaz a Minsforum OCuLinkes mini PC-je
- Önmagában is értékesíthetőnek tartja a Vera CPU-t az NVIDIA
- Vége az ajánlott áron árult GeForce-oknak?
- Milyen billentyűzetet vegyek?
- SSD kibeszélő
- Melyik tápegységet vegyem?
- Hisense LCD és LED TV-k
- Akkumulátor töltő digitális fényképezőgéphez
- Az SSD elfárad… a RAM miért nem?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- NiMH akkumulátor
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Jim-Y
veterán
Na, akkor legalább volt értelme a példának.
Ezt írja a konzolra:
Vagyis
10
10
10
10
10Magyarázat: (ha esetleg valamit rosszul írnék, akkor javítsatok ki többiek, nem szeretném ha valamit az én hibámból jegyezne meg rosszul

1:
for (var i = 1; i < 6; ++i) {
//...
}Ezt az interpreter így értelmezi:
var i = undefined;
for(i = 1; i < 6; ++i) {
//...
}Tehát az i ciklusváltozót felemeli a függvény törzsének elejére, majd undefined-ként deklarálja.
2:
cont.addEventListener('click', function () {
console.log(i);
});Minden click eseményre a cont objektumon/elementen regisztrál egy névtelen függvényt. A lényeges momentum, hogy minden függvény javascriptben látja/tartalmazza az őt körülvevő függvények kontextusát.
function a() {
var i = 10;
function b() {
var j = function() { return 11; };
function c() {
console.log(i); // 10
console.log(j()); //11
}
c();
}
b();
}
a();Az eredeti példánál maradva az anonim függvény látja az őt körülvevő test függvény kontextusát, így az i változót is. Az addEventListener függvényel olyan működést definiálunk, ami valamikor a jövőben fog lezajlani (amikor klikkelünk az elemre), ezért a ciklus már rég végez mire mi az elemre klikkelünk.
3:
amikor végül rányomunk a div-re, az i már a ciklus végén 6, majd egy újabb értékadással i = 10. Ne felejtsük, hogy az összes anonim függvény "cipeli" magával a test függvény kontextusát amiben az i változóhoz már a 10 érték van rendelve, ezért fog 5 x 10-et kiírni a program a konzolra.A megoldás az lehet, ha minden anonim függvénynek/hez egy új kontextus-t rendelünk, amiben az i változó a ciklusban éppen aktuális értéken fog szerepelni.
Példa és megoldás:
var cont = document.querySelector('#container');
function test() {
for (var i = 1; i < 6; ++i) {
(function (i) {
cont.addEventListener('click', function () {
console.log(i);
});
}(i));
}
i = 10;
}
test();A (function() { .. }()); egy új kontextust generál amibe elmentjük az i ciklusváltozó aktuális értékét így az mindig fix marad.
üdv
Új hozzászólás Aktív témák
- Önmagában is értékesíthetőnek tartja a Vera CPU-t az NVIDIA
- Anglia - élmények, tapasztalatok
- HMD Watch X1, Watch P1 és DUB széria: új viselhető kütyük a HMD-től
- Vége az ajánlott áron árult GeForce-oknak?
- Mikrotik routerek
- Milyen billentyűzetet vegyek?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Sorozatok
- Óra topik
- Elektromos autók - motorok
- További aktív témák...
- iPhone 13 mini Blue 128gb
- Samsung AU7022 65 Smart TV 4K Ultra HD LED hibátlan, dobozával
- 8 DARAB (Január 28.) DELL Latitude Laptop Tartós-Golyóálló-AKÁR SULIBA 7320 7430 7440 5320 5410 5420
- HP HyperX Cloud Blue Playstation Bolti ár:17k INGYEN FOXPOST
- Szinte Új HYPERX Cloud II metál gaming headset Bolti ár:33k INGYEN FOXPOST
- Bomba ár! Dynabook Portege X30-F - i7-8565U I 16GB I 256SSD I 13,3" FHD I Cam I W11 I Garancia!
- MSI CreatorPro Z16P RTX A5500 TOUCH! (vapor chamberrel)
- Samsung Galaxy S20 128GB,Átlagos,Adatkabel,12 hónap garanciával
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- Honor 90 512GB,Újszerű,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest



