如何在 javascript 的另一个文件中更改文件中的值变量

How I can change value varible in a file in another file in javascript

我想在另一个文件的 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中的长度不是

I imported anotherfile.js to index.js

那么我如何更改长度变量的值

非常感谢,抱歉我的英语不好

它不起作用,因为 JavaScript 不会通过引用其他函数来传递具有原始数据类型(例如整数)的变量,而是创建一个具有不同内存地址的全新变量。改变原始内存位置的唯一方法是传入一个数组或对象,然后 JavaScript 会将指向原始内存位置的指针(即“引用”)传递给函数。

因此您必须将 length 的数据类型更改为对象,并将对象的 value/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,它只会复制该值并创建一个全新的变量集来设置该值。