这一定是最基本的问题。也许今晚我的大脑陷入了 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?
使用C/C++,您可以通过将地址传递给函数或在函数内部使用引用来更改值。 但是,你不能通过传递自身来更改值,尽管在 C 中。 它与 JavaScript 类似。 如果您发送对象而不是变量,也许您可以更改它。但不是标量变量。
let g_name = { name: "Jean-Luc" };
function change(str) {
str.name = "Wesley";
}
change(g_name);
console.log(g_name);