如何在 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,它只会复制该值并创建一个全新的变量集来设置该值。
我想在另一个文件的 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,它只会复制该值并创建一个全新的变量集来设置该值。