#javascript
#javascript
Вопрос:
Мне интересно, можно ли экспортировать свойства и методы, возвращенные из модуля IIFE в JavaScript — пример ниже:
// Combined Projects
const combinedProjects = (() => {
// Create Combined Project Array
const combinedArray = [];
// Active Project
let activeProject = combinedArray;
return {
combinedArray,
activeProject
}
});
// Module Exports
export {activeProject};
Я изо всех сил пытаюсь получить доступ к переменной «activeProject», когда я импортирую ее куда угодно. Мне интересно, знает ли кто-нибудь, возможно ли это, не удаляя его из модуля?
Спасибо
Комментарии:
1. В опубликованном вами коде нет IIFE.
combinedProjects
это просто обычная функция, которая никогда не вызывается. IIFE выглядит так:(() => {})()
(Немедленно вызываемое выражение функции)2. Если вы экспортируете
combinedProjects
, то при импорте вы можете вызвать его, что позволит вам получить доступactiveProject
.3. Спасибо @NickParsons — Я экспортировал combinedProjects, как вы упомянули, но у меня все еще возникают трудности с доступом к activeProject в другом файле (после импорта). Я пробовал консольное ведение журнала combinedProjects и вижу, что он печатается, но я не могу вести журнал консоли ни «combinedProjects.activeProject», ни «activeProject». (Возможно, я неправильно истолковал то, что вы имели в виду, вызывая). Еще раз спасибо
4. На данный момент
combinedProjects
есть функция, которая будет возвращать объектactiveProject
, вам нужно будет сделать что-то вродеcombinedProjects().activeProject
в файле, в который вы его импортируете — если вы хотите запустить функцию только один раз, вы можете сделать это, сохранив объект в переменнойconst obj = combinedProjects()
, а затем используя объектobj.activeProject
, но если вы это сделаетея думаю, что приведенный ниже ответ — это больше то, что вам нужно
Ответ №1:
Я не знаю, с какой целью это делается таким образом, но, может быть?
const combinedProjects = (() => {
// Create Combined Project Array
const combinedArray = [];
// Active Project
let activeProject = combinedArray;
return {
combinedArray,
activeProject
}
})();
const {activeProject} = combinedProjects
// Module Exports
export {activeProject};