1

Javascriptでは、関数を定義したときのスコープを使って関数を実行するといいます。関数が呼び出されたときに有効なスコープとは関係ありません。

正確にはどういう意味ですか?誰かが簡単な例で説明してくれませんか。

4

2 に答える 2

2

次の出力は のスコープで定義されているため A です。したがってfoo、使用する変数は のスコープでも定義されている変数です。function adatafunction a

関数がwhereのスコープで呼び出されたにもかかわらず、 B を出力しません。function bdata = "B"

<div id="output"></div>
<script>
  var data = "global";

  function a() {
    var data = "A";
    function foo() {
       document.getElementById('output').innerHTML = data;
    }
    return foo;
  }

  function b() {
    var data = "B";
    var func = a();
    func();
  }

  b();
</script>
于 2013-03-15T12:31:17.397 に答える