私は自分のプロジェクトで次のようなコードを実行していますが、その結果が混乱を招きます。
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]
コメントを追加