У меня есть 2 файла javascript, main.js и array.js. В main.js я храню свой основной javascript, но в array.js у меня есть объект mainObj, слишком большой, чтобы его можно было сохранить в main.js из-за отставания. В mainObj некоторые свойства получают случайное значение из переменной myVar, например,
"1": myVar[Object.keys(myVar.
[Math.floor(Math.random()*Object.keys(myVar).length)]]
Когда веб-сайт загружается, он получает это случайное значение 1 раз, когда веб-сайт загружается, но мне нужно, чтобы оно получало случайное значение каждый раз, когда я нажимаю кнопку.
Единственный способ заставить это работать - сделать mainObj локальным для функции, которая активируется при нажатии кнопки. Эта функция, giveOutput () находится в main.js. Но, как я уже говорил, наличие mainObj в main.js вызывает сбой. Я попытался сделать mainObj глобальным в array.js, а затем вызвать его в функции showObject (), которая находится в array.js.
var mainObj;
function showObject() {
mainObj = {
"1":myVar[Object.keys(myVar[Math.floor(Math.random()*Object.keys(myVar).length)]],
"2": "Content"
//The array goes on like this for a while
}
}
Затем я вызываю его в giveOutput ().
function giveOutput() {
var output = mainObj;
}
Но я всегда получаю сообщение об ошибке "undefined не является объектом (оценивает 'mainObj')"
Я хочу иметь доступ к mainObj из метода giveOutput () в main.js, а не получать ошибку.