www.wikidata.uk-ua.nina.az
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2021 U programuvanni zamikannyam angl closure nazivayut pidprogramu sho vikonuyetsya v seredovishi yake mistit odnu abo bilshe zv yazanih zminnih sho ce Pidprograma maye dostup do cih zminnih pid chas vikonannya Zastosuvannya zamikan asociyuyetsya z funkcijnim programuvannyam U funkcionalnomu programuvanni za dopomogoyu zamikan mozhut modelyuvatis taki konstrukciyi yak ob yekti v inshih movah programuvannya U deyakih movah programuvannya yakih zamikannya stvoryuyetsya dlya pidprogram sho viznacheni vseredini inshih pidprogram i vnutrishnya pidprograma maye dostup do lokalnih zminnih zovnishnoyi Pid chas vikonannya koli obchislyuyetsya zovnishnya pidprograma utvoryuyetsya zamikannya do yakogo potraplyaye kod vnutrishnoyi pidprogrami ta posilannya na ti zminni zovnishnoyi pidprogrami sho vikoristovuyutsya u vnutrishnij pidprogrami Posilannya na zminni zovnishnoyi pidprogrami zalishayutsya dijsnimi vseredini vkladenoyi vnutrishnoyi pidprogrami doti poki isnuye cya vkladena pidprograma navit yaksho zovnishnya pidprograma zavershila vikonannya i vijshla z oblasti vidimosti Koncepciyu zamikan bulo povnistyu rozrobleno v 1960 ti roki ta realizovano yak osoblivist movi programuvannya Scheme Vidtodi bulo rozrobleno bagato mov programuvannya z pidtrimkoyu zamikan Zmist 1 Priklad realizaciyi na Lua 2 Priklad na JavaScript 2 1 Stvorennya zamikannya v JavaScript 2 2 Vidalennya zamikannya 3 PrimitkiPriklad realizaciyi na Lua Redaguvatifunction addfunc x return function y Povertaye novu funkciyu bez nazvi yaka dodaye x do argumentu return x y Koli mi budemo posilatisya na zminnu x sho znahoditsya poza danoyu oblastyu j isnuvannya yakoyi menshe nizh danoyi bezimennoyi funkciyi Lua stvorit zamikannya end end num plus addfunc 2 Teper num plus funkciya v yakij zamist x pidstavleno 2 print num plus 5 V rezultati bude vivedeno 7Priklad na JavaScript RedaguvatiFunkciyi zokrema v JS mozhna zobraziti yak specialni ob yekti sho vklyuchayut kod yakij mozhna zapuskati a takozh vlastivosti Kozhna funkciya maye vlastivist scope kotra vidobrazhaye otochennya na moment stvorennya funkciyi Yaksho zh funkciyu stvoreno viklikom z inshoyi funkciyi todi ce vidobrazhennya starogo otochennya perekrivayetsya novoyi funkciyeyu i ce nazivayetsya zamikannyam const myClosure function outerFunction let hidden 1 return innerFunction return hidden myClosure innerFunction povertaye 1 myClosure innerFunction povertaye 2 myClosure innerFunction povertaye 3 Koli JS kod pracyuye lokalni zminni zberigayutsya v scope V JavaScript lokalni zminni mozhut lishatis v pam yati navit pislya togo yak funkciya povernula znachennya Stvorennya zamikannya v JavaScript Redaguvati Usi funkciyi v JavaScript ce zamikannya koli zadayetsya funkciya zadayetsya zamikannya Tak sho zamikannya stvoryuyetsya pri viznachenni funkciyi Ale treba rozumiti riznicyu mizh stvorennyam zamikannya i stvorennyam novogo scope ob yektu zamikannya 1 funkciya posilannya na potochnij lancyuzhok scope ob yektiv stvoryuyetsya pri viznachenni funkciyi ale novij scope ob yekt stvoryuyetsya i vikoristovuyetsya dlya modifikaciyi lancyuzhka scope ob yektiv zamikannya pri vikliku funkciyi Vidalennya zamikannya Redaguvati Zbirnik smittya obroblyaye i vidalyaye zamikannya yak i bud yakij inshij ob yekt u JavaScript koli na nogo bilshe nemaye posilan Primitki Redaguvati Learning Javascript with Object Graphs How To Node NodeJS howtonode org Arhiv originalu za 27 grudnya 2016 Procitovano 24 kvitnya 2016 Otrimano z https uk wikipedia org w index php title Zamikannya programuvannya amp oldid 39489413