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

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

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


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

Можно ли так делать?
  • Вопрос задан
  • 680 просмотров
Решения вопроса 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
Экспорт по сути не происходит, просто вызывается функция.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Александрия Москва
от 200 000 до 250 000 руб.
Foodtronics Москва
от 100 000 до 200 000 руб.
Алгоритмика Москва
от 120 000 до 200 000 руб.
21 авг. 2019, в 12:03
3000 руб./в час
21 авг. 2019, в 11:44
750 руб./в час
21 авг. 2019, в 11:32
1000 руб./в час