#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. в любое время, приятель 😉