Очень Плохие Новости
Без вашей поддержки донатом сайт code.mu скоро закроется. Читать подробнее...
⊗jsPmMCVFEO 504 of 505 menu
Снова выходят занимательные задачи по JavaScript, PHP и Python. Присоединяйтесь к нам!

Экспорт объекта в модулях через замыкания в JavaScript

Пусть у нас есть следующий модуль:

;(function() { function func1() { alert('module funcion'); } function func2() { alert('module funcion'); } function func3() { alert('module funcion'); } })();

Пусть мы хотим экспортировать наружу все три функции. В этом случае, чтобы не плодить снаружи модуля лишних имен функций, лучше записать все функции в один объект и выполнить экспорт этого объекта:

;(function() { function func1() { alert('module funcion'); } function func2() { alert('module funcion'); } function func3() { alert('module funcion'); } window.module = {func1: func1, func2: func2, func3: func3}; })();

Так как имена ключей и переменных совпадают, то объект с функциями можно упросить:

;(function() { function func1() { alert('module funcion'); } function func2() { alert('module funcion'); } function func3() { alert('module funcion'); } window.module = {func1, func2, func3}; })();

Можно пойти и другим путем. Будем записывать функции в объект сразу при описании функции, вот так:

;(function() { let module = {}; module.func1 = function() { alert('module funcion'); } module.func2 = function() { alert('module funcion'); } module.func3 = function() { alert('module funcion'); } window.module = module; })();

Дан следующий модуль:

;(function() { let str1 = 'module variable'; let str2 = 'module variable'; let str3 = 'module variable'; function func1() { alert('module funcion'); } function func2() { alert('module funcion'); } function func3() { alert('module funcion'); } function func4() { alert('module funcion'); } function func5() { alert('module funcion'); } })();

Экспортируйте наружу объект с первыми пятью функциями и первыми двумя переменными.

Русский
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить