АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗jsPmClInr 262 of 505 menu

Замыканні ў JavaScript

Давайце цяпер вывучым паняцце замыканне (англ. closure). На самой справе вы ўжо знаёмыя з гэтым паняццем, засталося толькі даведацца правільную тэрміналогію.

Такім чынам, замыканне - гэта функцыя разам з усімі знешнімі зменнымі, якія ёй даступныя. Ці, іншымі словамі, замыканне - гэта функцыя разам са сваім лексічным атачэннем.

У JavaScript часцей за ўсё, кажучы "замыканне функцыі", маюць на ўвазе не саму гэтую функцыю, а менавіта яе знешнія зменныя. Калі ж якая-небудзь функцыя атрымлівае зменную са свайго лексічнага атачэння, то кажуць "зменная бярэцца з замыкання".

Успомнім код, які мы зрабілі ў папярэднім уроку:

function test() { let num = 1; return function() { console.log(num); } } let func = test(); func(); // выведзе 1

У даным выпадку і можна сказаць, што функцыя func атрымлівае значэнне зменнай num з замыкання. Таксама можна сказаць, што функцыя func захоўвае значэнне зменнай num у замыканні.

byenru