0

いくつかの JS コードを参照しているときに、コードを見つけました。

サンプルコード:

arg = "TEST ALERT MESSAGE";
MyFunction(arg);

function MyFunction()
{
alert(arg)
}

上記の MyFunction() には警告メッセージが表示されますが、着信引数を受け取るパラメーターはありません。

しかし、「arg」変数 (関数内および関数「arg」の外側) を変更すると、機能しません。

それはどのように可能ですか?

前もって感謝します

4

1 に答える 1

1

JavaScript の変数スコープは、あなたが思うようには機能しません。その変数を「プライベート」にするには、次を試してください。

var arg = "not private";
function privateMSG(){
var arg = "private";
  function alerter(){
  alert(arg);
 }
  alerter();
}

MDN にはネストされた関数とクロージャーのセクションでより良い説明があります

于 2013-06-13T06:03:17.827 に答える