我正在尝试定义一个在函数参数中选择的变量,但它不会更改我在参数中使用的变量。
我的代码:
var x = "nothing yet!";
function changeValue(variable) {
variable = "x";
}
changeValue(x);
console.log(x);
当我通过控制台运行它时,它只是显示“还没有!”当我希望它显示为“x”时。
任何解决此问题的帮助都会非常有帮助。
最佳答案
在 JavaScript 中 strings are primitive value types 。您无法在这样的函数中更改它们。
它们也是不可变的。更改示例中的字符串就像更改数字 2 :)
要强调的是,对于 JavaScript - 你正在做的事情有点像:
function makeTwoThree(two){
two = 3;
}
var two = 2;
makeTwoThree(two); // two is passed by value since it's a value type.
您应该返回它:
function changeValue(variable) {
return "x";
}
variable = changeValue(variable);
或者,您可以将其包装在一个对象中并传递该对象,这将允许您更改引用。但是,请记住,您不是在此处更改字符串,而是替换它。
关于javascript - 定义一个已放入 Javascript 函数参数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927354/