通过参数修改函数内部的全局变量
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 是 "pass by value" 而不是 "pass by reference",所以我如何修改那个变量(在函数)通过向函数传递一个值?如果不将 wish
更改为对象或数组来保存我的字符串而不是基元是不可能的吗?
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,但可以在较小范围内没有同名变量的任何地方设置全局变量。
使用对象代替全局变量。
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!';
}
translate(wish);
console.log(wish);
我意识到它不会修改 wish
因为 JavaScript 是 "pass by value" 而不是 "pass by reference",所以我如何修改那个变量(在函数)通过向函数传递一个值?如果不将 wish
更改为对象或数组来保存我的字符串而不是基元是不可能的吗?
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,但可以在较小范围内没有同名变量的任何地方设置全局变量。
使用对象代替全局变量。
let wish = {
msg: 'Happy birthday!'
};
function translate(obj) {
obj.msg = 'Alles Gute zum Geburtstag!';
}
translate(wish);
console.log(wish.msg);