我在我的项目中正在执行以下类型的代码,其结果使我感到困惑。
function changeSomethingsValue (thingToChange) {
thingToChange = "something else";
}
var something = "something";
changeSomethingsValue(something);
console.log(something); // prints out "something"
我对为什么something
变量的值在通过changeSomethingsValue
函数后仍然是字符串“ something”感到困惑。为什么会发生这种情况,以及如何获取将新值分配给传入的变量的函数?
传递基元(例如字符串或数字)时,将按值传递。您期望它通过引用传递。
解决方法是将其设置something
为的返回值changeSomethingsValue
function changeSomethingsValue (thingToChange) {
thingToChange = "something else";
return thingToChange;
}
var something = "something";
something = changeSomethingsValue(something);
console.log(something); // prints out "something"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句