Импорт переменной делает ее анализируемой до того, как проверяется условие и вызывается переменная - PullRequest
0 голосов
/ 23 сентября 2019

Я разделил свой JS на несколько файлов, чтобы облегчить мою жизнь, так как файл получал более 500 строк.В начале моего основного файла feature.js я проверяю, присутствует ли на странице «функция».Итак, я знаю, что присутствуют все «функциональные» элементы DOM.Если это так, то он должен продолжать разбирать дальше.Например:

import { valuesStored } from '../values.js';

const feature = document.querySelector('#feature')

if (feature.length) {
// parse my code
// some functions calling (valuesStored)
}

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

export let valuesStored = {
  itemA: document.getElementById('itemA').value
}

Когда, во-первых,Раньше я объявлял мою переменную в операторе if, тогда все было хорошо

Но теперь, когда я сохранил ее в другом файле и импортирую, кажется, что переменные values.js и valuesStored анализируются каждый разперед вызовом даже на страницах, где «фича» нет.И поэтому он выдает ошибку, поскольку document.getElementById ('itemA') отсутствует и, следовательно, document.getElementById ('itemA'). Value выбрасывает ошибку.

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

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...