Как я могу изменить значение переменной в файле в другом файле в javascript

#javascript #node.js #variables #global-variables #module.exports

Вопрос:

Я хочу изменить переменную значения в index.js в другом файле, но я не могу этого сделать, и это мой пример кода

index.js

    var length = 0;
   client.commands.get('join').excute(length);
 

anotherfile.js

 module.exports = {
    name: 'join',
    description: "",
    excute(length){
       length  ;
    }
 

длина в index.js равно 1 = 2, но длина в anotherfile.js не является

Я импортировал anotherfile.js чтобы index.js

Итак, как я могу изменить значение переменной длины

Большое вам спасибо и извините за мой плохой английский

Ответ №1:

Это не работает, потому что JavaScript не передает переменные с примитивными типами данных, такими как целое число, через ссылку на другие функции, а скорее создает совершенно новую переменную с другим адресом памяти. Единственный способ изменить исходную ячейку памяти-это передать массив или объект, который JavaScript затем передаст в качестве указателя на исходную ячейку памяти, т. Е. «ссылку», на функцию.

Таким образом, вам придется изменить тип length данных на объект и добавить значение/длину объекта в качестве свойства. Затем excute функция просто получит доступ к этому свойству и увеличит его примерно так:

index.js:

 const obj = { length: 0 }

client.commands.get('join').excute(obj);
 

anotherFile.js:

 module.exports = {
    name: 'join',
    description: "",
    excute(obj){
       obj.length  ;
    }
}
 

Имейте в виду, что вы должны передать весь объект целиком, иначе, если вы просто передадите obj.length, он просто скопирует значение и создаст совершенно новую переменную, установленную для этого значения.

Комментарии:

1. боже, это работает, большое тебе спасибо

2. в любое время, приятель 😉