1

我想更改另一个文件中 index.js 中的值变量,但我不能这样做,这是我的代码示例

index.js

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

另一个文件.js

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

index.js中的长度是 + 1 = 2,但anotherfile.js中的长度不是

我将 anotherfile.js 导入到 index.js

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

非常感谢你,对不起我的英语不好

4

1 回答 1

0

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

因此,您必须将数据类型更改为length对象,并将对象的值/长度添加为属性。然后该excute函数将访问该属性并像这样递增它:

index.js

const obj = { length: 0 }

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

另一个文件.js

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

请记住,您必须传递整个对象,否则如果您只传递 obj.length,它将简单地复制该值并创建一个设置为该值的全新变量。

于 2021-09-23T14:43:44.527 回答