答えて
aaa
がfn()
の範囲外であるために動作しません。何を混乱することができることは
(function() {
alert(aaa); // 'BBB'
})();
が動作しているが、fn()
ではないということです。 "BBB"はfoo2
の中で呼び出されたとと定義されているので、alert(aaa)
とaaa
は同じスコープにあり、うまく動作します。 fn()
にパラメータとして渡すaaa
var aaa = 'BBB';
var fn = function() {
return function() {
alert(aaa);
};
};
var foo2 = function() {
(function() {
alert(aaa); // 'BBB'
})();
fn();
};
:アッパー範囲内
が宣言
aaa
:あなたは2つのオプションがあり、ことを考えるとvar fn = function (aaa) { return function() { alert(aaa); }; }; var foo2 = function() { var aaa = 'BBB'; (function() { alert(aaa); // 'BBB' })(); fn(aaa); };
http://www.digital-web.com/articles/scope_in_javascript/
:
は、ここではJavaScriptスコープについての記事です。
fn機能が動作しているときは、foo2機能でaaaが見つかるはずです。
いいえ、そうしてはいけません。 aaa
はローカル変数としてfoo2
に宣言されており、fn
の内部ではアクセスできません。何が違うと思いますか?私が見たプログラミング言語はそのように振る舞いませんでした。
//var aaa = 'AAA';
行のコメントを外しても、その後fn
の警告はもちろん「BBB」ではなく「AAA」と表示されます。
ありがとうございます。 :) – weilou
var aaa
をfoo2
に指定したので、その範囲はfoo2
に制限されています。 fn
にはアクセスできません。
var aaa
を両方の関数の外に宣言するか、パラメータとしてfn
に渡します。
お返事ありがとうございます。 :) – weilou
- 1. アセンブリ言語コードの問題
- 2. Wordpressサイト言語の問題
- 3. Installshield多言語の問題
- 4. 多言語ウェブサイトの問題
- 5. NSLocale言語の問題
- 6. Appstore言語の問題
- 7. .htaccess言語でのリダイレクトの問題
- 8. 多言語ポストの日付問題
- 9. Javascript変数宣言問題
- 10. Qtranslateカスタムフォント毎の言語の問題
- 11. 多言語切り替えの問題
- 12. 言語ツールでのtexstudioの問題
- 13. itext Marathi(indian)言語の表示問題
- 14. androidのRTL言語の問題
- 15. Codeigniterのカレンダー言語の問題
- 16. 多言語Javaアプリケーションのフォントの問題
- 17. IONIC -3カレンダーの言語の問題
- 18. Jomsocialの複数言語の問題
- 19. ネイティブ言語の問題()とhtml jQueryの
- 20. 多言語表の設計問題
- 21. Prestashop 1.7.1.1多言語リダイレクトの問題
- 22. 多言語対応ストーリーボードサポートの問題
- 23. android:多言語データベースの問題
- 24. Sitecore 8.1-言語上の問題点
- 25. Asprise OCR-言語の問題C#
- 26. R言語パッケージltmライブラリコマンドでの問題
- 27. 異なる言語の問題VBA
- 28. Google geocode api言語の問題
- 29. アンドロイドの多言語キーボード選択問題
- 30. プログラミング言語の文化的問題
あなたの返事をありがとう。 :) – weilou