以下是一个例子:
let wish = 'Happy birthday!';
function translate(msg) {
msg = 'Alles Gute zum Geburtstag!';
}
translate(wish);
console.log(wish);
我意识到它不会修改wish
因为JavaScript是“按值传递”而不是“通过引用传递”,所以如何通过传递一个来修改该变量(在函数之外)价值到功能?如果不将wish
更改为对象或数组来保存我的字符串而不是原语吗?
答案 0 :(得分:1)
使用对象而不是全局变量。
let wish = {
msg: 'Happy birthday!'
};
function translate(obj) {
obj.msg = 'Alles Gute zum Geburtstag!';
}
translate(wish);
console.log(wish.msg);

答案 1 :(得分:-1)
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的任何地方设置全局变量。