1

スコープに問題があります。明らかにするモジュール パターンを実装する次のコードがあります。

myModule = function(){

  var foo = "ohai";

  function sayOhai(foo){
      alert(foo);
  };

  return{
    sayOhai : sayOhai
  };

}();

myModule.sayOhai("configData");

これにより、ダイアログ「configData」が発生します。

ただし、関数 sayOhai には、定義された var を使用して「ohai」と言ってもらいたいです。sayOhai のパラメータ名を変更したくない場合、sayOhai 内で foo の値にアクセスするにはどうすればよいですか? を試しalert (this.foo)ましたが、未定義です。

繰り返しますが、これは理論的な質問なので、変更sayOhai(foo)は私が探している解決策ではありません。var の名前とメソッドのパラメーターは同じままにする必要があります。では、sayOhai の範囲から見た var foo の完全修飾名は何でしょうか?

前もって感謝します

4

2 に答える 2