通过参数修改函数内部的全局变量
Modify global variable inside function via parameter
下面是一个例子:
let wish = 'Happy birthday!';
function translate(msg) {
msg = 'Alles Gute zum Geburtstag!';
}
translate(wish);
console.log(wish);
我意识到它不会修改wish
,因为JavaScript是"通过值传递"而不是"通过引用传递",所以我怎么能通过将值传递给函数来修改该变量(在函数之外)?不将wish
更改为对象或数组来保存我的字符串而不是原语,这是不可能的吗?
不使用全局变量,而是使用对象。
let wish = {
msg: 'Happy birthday!'
};
function translate(obj) {
obj.msg = 'Alles Gute zum Geburtstag!';
}
translate(wish);
console.log(wish.msg);
let wish = 'Happy birthday!';
function translate(msg) {
msg = 'Alles Gute zum Geburtstag!';
return wish=msg;
}
translate(wish);
console.log(wish); //Alles Gute zum Geburtstag!
不必使用return,但是全局变量可以在较小范围内没有相同名称的var的任何地方设置。
相关文章:
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 更改函数内部的全局变量而不调用它
- angular/javascript无法识别函数内部的全局变量
- 如何修改函数内部的全局变量
- 在CrossRider内部创建的全局变量's的appAPI.ready()函数对页面不可用
- 函数内部的JavaScript全局变量定义
- 函数内部的JavaScript延迟,没有全局变量
- 为什么全局变量没有't似乎受到内部作用域(Javascript)的影响
- 对函数内部的全局变量所做的更改是否全局反映?Javascript
- 如何更改函数内部全局变量的值
- jquery更改函数内部的全局变量
- 如何从函数节点内部使变量全局.js
- 从函数内部声明一个全局变量
- 为什么没有识别全局变量(内部函数)
- jQuery在函数AJAX函数内部的全局变量有问题
- Javascript全局变量未进入函数内部
- 如何从函数内部声明全局变量
- JavaScript全局变量在函数内部变为未定义
- 为什么定义在函数内部的x在我没有声明它为变量的情况下变成了一个全局变量?
- 如何从匿名函数内部更改全局变量