AlexaShemetova
@AlexaShemetova
While I'm breathing - I love and believe

Как экспортировать анонимную самовызывающуюся функцию js в es6 формате?

В общем у меня есть это в одном файле
(function() {
shop.addEventListener('click', function() {
     // какое то действие
    });
}());


В другом принимаю импорт так с пустыми скобками и это работает!
import {} from '../loc/store';

Можно ли так делать?
  • Вопрос задан
  • 1434 просмотра
Решения вопроса 1
profesor08
@profesor08 Куратор тега JavaScript
Импортируя код в файле выполняется, создаются ссылки, функции, и выполняются самовызывающиеся конструкции вроде твоей. Собственно это там и происходит.

Если ты хочешь по настоящем пользоваться импортом и экспортом, то надо делать иначе:
// shop.js
export function createShop(selector) {
  document.querySelector(".createShop").addEventListener("click", e => {
    // ...
  });
}

// index.js
import { createShop } from "./shop.js";

createShop(".shop");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
У вас работает со сборщиком или нейтивныйе модули?

Вообще написанно странно, если это независимая самовызывающаяся функция, то зачем ее импортировать, просто подключите в файл, если она зависит от окружения или окружение зависит от нее, то не делайте ее самовызывающейся, сделайте метод и вызывайте в том месте, где импортируете.
А пока это выглядит как случайно работающий костыль.
Ответ написан
Stalker_RED
@Stalker_RED
Экспорт по сути не происходит, просто вызывается функция.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы