ホームページ >ウェブフロントエンド >jsチュートリアル >プリミティブ、関数、および WTH 値が更新されない
私は基礎に少し取り組んでいて、この問題に遭遇しました。それは直感的にはわかっていましたが、詳しく調べたことはありませんでした。そして、JavaScript がプリミティブをどのように扱うかについて私が深く理解していないという言い訳はありません。
これは最も単純な例です。ここで、add3 関数とremove1 関数を呼び出しても、myPointsvariable は更新されません。
let myPoints = 3; function add3(points) { points += 3; } function remove1(points) { points--; } add3(myPoints); remove1(myPoints); console.log(myPoints) // 3
これをこのように機能させるための中心的な概念は次のとおりです:
値渡し:
JavaScript では、プリミティブ値 (数値など) を関数に渡すとき、それらは値によって渡されます。これは、元の変数自体ではなく、値のコピーが作成されて関数に渡されることを意味します。
関数スコープ:
関数内で定義された変数には関数スコープがあり、その関数内でのみアクセス可能です。
戻り値:
結果を関数の外で使用したい場合、JavaScript の関数は明示的に値を返す必要があります。
myPoints が変更されない理由は次のとおりです:
これを修正するには、主に 2 つのオプションがあります:
function add3(points) { return points + 3; } myPoints = add3(myPoints);
let myPoints = { value: 3 }; function add3(pointsObj) { pointsObj.value += 3; } add3(myPoints); console.log(myPoints.value); // Now it's 6
以上がプリミティブ、関数、および WTH 値が更新されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。