0

次の不自然な JavaScript を想定してください。

function do_something() {

  var x = 5;

  function alert_x() {
    alert(x);
  }

  alert_x();

}

do_something();

変数xは関数に対してローカルdo_somethingです。これは、すべてのスコープで使用できるわけではないため (つまり、 wheredo_somethingが呼び出されるなど、どちらの関数の外部でも)、グローバル変数ではありません。

xしかし、「変数は関数に対してグローバルである」と言うのは適切でしょうalert_xか? この意味で「グローバル」は相対的な用語として使用できますか?

4

1 に答える 1

3

私はこれをしないことをお勧めします: それは慣習に反し、混乱を招きます. これを標準の Javascript オブジェクト イディオムの一部として行う場合は、単にx「メンバー変数」と呼ぶか、そうでなければ「クロージャー変数」と呼びます (これは のクロージャーによってキャプチャされるためalert_x)。

于 2010-07-19T16:04:31.213 に答える