通过参数

时间:2016-10-25 21:38:22

标签: javascript function variable-assignment

以下是一个例子:

let wish = 'Happy birthday!';

function translate(msg) {
  msg = 'Alles Gute zum Geburtstag!';
}

translate(wish);
console.log(wish);

我意识到它不会修改wish因为JavaScript是“按值传递”而不是“通过引用传递”,所以如何通过传递一个来修改该变量(在函数之外)价值到功能?如果不将wish更改为对象或数组来保存我的字符串而不是原语吗?

2 个答案:

答案 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的任何地方设置全局变量。