1

壊れたスコープ

上記がどのように警告を生成しているのか、誰かが私に説明してくれませんか。

質問される前に、$me 変数は関数呼び出しの外では定義されていないことに注意してください。確かに、$me のスコープは「if」ステートメントの最後で終了する必要があります。

ここで明らかな何かが欠けているように感じますが、指を置くことはできません。

4

3 に答える 3

4

ifステートメントには独自のスコープがありません。それはまだ使用された範囲です。関数またはグローバル スコープ。

そのため、 で定義された変数はif、以前に定義された変数と衝突します。

于 2013-10-10T11:24:08.550 に答える
1

var $me関数は、一度だけ宣言する必要があるときに繰り返し宣言を試みます。

//Scope is defined at function level
function something(){
    var $me = {}; //declaration, only do this once within a function
    if(something){
       $me = "x"; //assignment, for after a var is declared
    }else if(somethingElse){
       $me = "y";  //another assignment, do this as much as you want
    }
}
于 2013-10-10T11:24:35.747 に答える