在const对象的方法内部修改 其他js的变量 为什么其他js没变
时间: 2023-12-03 19:05:47 浏览: 58
简单掌握JavaScript中const声明常量与变量的用法
`const` 声明的对象是可以修改它的属性值,但是无法重新赋值。如果你在一个 `const` 声明的对象的方法中修改了其他 JavaScript 文件中的变量,那么其他 JavaScript 文件中的变量不会被修改,这是因为 `const` 声明的对象只是保证了对象的引用不会改变,而不是对象的值不会改变。
例如,假设有两个 JavaScript 文件 `file1.js` 和 `file2.js`,分别定义了以下变量:
```
// file1.js
const myObject = {
name: 'John',
age: 30,
modifyAge: function() {
myAge += 1;
}
};
// file2.js
let myAge = 25;
```
在 `myObject` 对象的 `modifyAge` 方法中,它修改了 `myAge` 变量的值。然而,当你在 `file2.js` 文件中访问 `myAge` 变量时,它的值仍然是 `25`,并没有被修改为 `26`。这是因为 `file2.js` 中的 `myAge` 变量和 `myObject` 对象中的 `myAge` 并不是同一个变量,它们只是名字相同而已。
如果你想在 `myObject` 对象的方法中修改 `file2.js` 中的变量值,你需要将 `myAge` 变量作为参数传递给 `modifyAge` 方法,然后在方法中修改它的值。例如:
```
// file1.js
const myObject = {
name: 'John',
age: 30,
modifyAge: function(age) {
age += 1;
}
};
// file2.js
let myAge = 25;
myObject.modifyAge(myAge);
console.log(myAge); // 26
```
这样,`myObject` 对象的 `modifyAge` 方法中就可以修改 `file2.js` 中的变量值了。
阅读全文