在函数中传递和更改变量

问题描述 投票:0回答:1

这一定是最基本的问题。也许今晚我的大脑陷入了 90 年代初期的 Pascal 和 C 近视,但为什么该值没有传回下面?如果我完全删除参数并将函数内的“str”更改为“name”(使其成为全局变量),那么它就可以工作。我会将 JS 与哪种语言语法混淆?预先感谢您的学校教育。 :)

var name = 'Jean-Luc';
  
function change(str) {
  str = 'Wesley';
}
  
change(name);
console.log(name); // returns Jean-Luc
                   // why is it not Wesley?
javascript function variables
1个回答
0
投票

使用C/C++,您可以通过将地址传递给函数或在函数内部使用引用来更改值。 但是,你不能通过传递自身来更改值,尽管在 C 中。 它与 JavaScript 类似。 如果您发送对象而不是变量,也许您可以更改它。但不是标量变量。

let g_name = { name: "Jean-Luc" };

function change(str) {
    str.name = "Wesley";
}

change(g_name);
console.log(g_name);

© www.soinside.com 2019 - 2024. All rights reserved.