Сделать конструктор доступным через файлы js - PullRequest
0 голосов
/ 02 апреля 2019

Я вызываю следующую функцию конструктора:

  deck.tracker = new ActivityTracker();

Все проходит, если я определю это в том же файле / контексте:

   function ActivityTracker() {}

Но как только я перееду:

    function ActivityTracker() {}

в отдельный файл и включите его до вызова другого файла, область действия прерывается.Как это исправить, не меняя эту строку:

     deck.tracker = new ActivityTracker();

Примечание: импорт должен быть условным: if (window.location.href.indexOf ("http://0.0.0.0") == 0 ||window.location.href.indexOf ('http://local') == 0) {затем импортировать}.

, поэтому использование импорта / экспорта, которое может быть только верхнего уровня, не работает.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Лучше всего использовать модули javascript es6 и просто импортировать функцию из другого файла.

В основном файле:

import { ActivityTracker } from 'somefileurl'

deck.tracker = new ActivityTracker();

Затем в файле, содержащем ActivityTracker функцию:

function ActivityTracker() {}

export ActivityTracker
0 голосов
/ 02 апреля 2019

Вам просто нужно сначала импортировать его:

В отдельном файле:

function ActivityTracker() {}
export ActivityTracker;

В основном файле:

import { ActivityTracker } from "./separateFile";
deck.tracker = new ActivityTracker();
...