0
<html>
<head>
<script type='text/javascript'>
alert(name);
function init() {
    name = parseInt(name) +1; // name is a local variable created by init
    function displayName() { // displayName() is the inner function, a closure
        alert (name); // displayName() uses variable declared in the parent function    
    }
    displayName();    
}
init();
</script>
</head>
<body>
Some  Text 
</body>
</html>

これは私の単純な JavaScript コードです。上記のコードをコピーして貼り付け、何度も更新して奇妙な出力を確認しました。

ページを更新するたびに、name 変数が 1 ずつ増えていることがわかります。

最初のロード: アラート ' ' および 1
2 番目のロード: アラート 1 および 11
3 番目のロード: アラート 11 および 111
など ...

ウィンドウまたはタブを閉じてからリロードすると、正しく動作しているように見えます。ただし、同じウィンドウまたはタブで 2 回目のリロードを行うと、上記と同じ出力が得られます。

私の質問は次のとおりです。なぜ、どのように変数nameを更新した後でも、また複数の更新 (F5またはCtrl+ Shift+ R) を使用できるのですか?

4

1 に答える 1

0

に変更nameするn_ameと動作します:)

nameは Chrome のグローバル変数であるため、更新後にリセットされません

于 2013-10-24T12:23:03.117 に答える