タグ付けされた質問 「scope」

スコープは、値と式が関連付けられている囲みコンテキストです。このタグは、さまざまな種類のスコープに関する質問や、スコープが明確でない可能性がある質問に使用します。

30
JavaScriptクロージャーはどのように機能しますか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 OverаэтотвопросестьответынаStack Overflowнарусском:КакработаютзамыканиявJavaScript JavaScriptクロージャの構成概念(関数、変数など)を知っている人に、JavaScriptクロージャをどのように説明しますか?しかし、クロージャ自体は理解していませんか? WikipediaにあるSchemeの例を見たことがありますが、残念ながら役に立ちませんでした。

30
「let」と「var」の違いは何ですか?
ECMAScript 6 はletステートメントを導入しました。 「ローカル」変数として記述されていると聞きましたが、varキーワードとどのように異なる動作をするのかはまだよくわかりません。 違いは何ですか?いつlet使用すべきvarですか?

19
関数でのグローバル変数の使用
関数でグローバル変数を作成または使用するにはどうすればよいですか? 1つの関数でグローバル変数を作成した場合、そのグローバル変数を別の関数でどのように使用できますか?アクセスを必要とする関数のローカル変数にグローバル変数を格納する必要がありますか?



4
C#がforeachで変数を再利用する理由はありますか?
C#でラムダ式または無名メソッドを使用する場合、変更されたクロージャーの落とし穴へのアクセスに注意する必要があります。例えば: foreach (var s in strings) { query = query.Where(i => i.Prop == s); // access to modified closure ... } 変更されたクロージャのため、上記のコードではWhere、クエリのすべての句がの最終値に基づいていますs。 ここで説明したように、これsは、foreach上記のループで宣言された変数がコンパイラで次のように変換されるために発生します。 string s; while (enumerator.MoveNext()) { s = enumerator.Current; ... } このようにする代わりに: while (enumerator.MoveNext()) { string s; s = enumerator.Current; ... } ここで指摘したように、ループの外側で変数を宣言してもパフォーマンス上の利点はありません。通常の状況では、これを行うために考えられる唯一の理由は、ループのスコープ外で変数を使用する場合です。 string s; while (enumerator.MoveNext()) { …

17
.then()チェーンで以前のpromise結果にアクセスするにはどうすればよいですか?
私はに私のコードを再構築してきた約束、そして素晴らしい長い建てフラット約束チェーンを複数からなる、.then()コールバック。最後に、いくつかの複合値を返し、複数の中間promise結果にアクセスする必要があります。ただし、シーケンスの中央からの解決値は、最後のコールバックのスコープ内にありません。それらにアクセスするにはどうすればよいですか? function getExample() { return promiseA(…).then(function(resultA) { // Some processing return promiseB(…); }).then(function(resultB) { // More processing return // How do I gain access to resultA here? }); }

8
「(function(){…})()」のような匿名関数でJavascriptファイル全体をラップする目的は何ですか?
私は最近多くのJavascriptを読んでいて、インポートされる.jsファイルでファイル全体が次のようにラップされていることに気づきました。 (function() { ... code ... })(); コンストラクター関数の単純なセットではなく、これを行う理由は何ですか?

12
JavaScriptクロージャーと無名関数
私の友人と私は現在、JSの閉鎖とは何か、閉鎖ではないことについて話し合っています。本当に正しく理解できるようにしたいだけです。 この例を見てみましょう。カウントループがあり、遅延したコンソールにカウンター変数を出力したいと考えています。したがってsetTimeout、クロージャーを使用してカウンター変数の値をキャプチャし、値NのN倍を出力しないようにします。 クロージャーまたはクロージャーに近いものがない場合の間違った解決策は次のとおりです。 for(var i = 0; i < 10; i++) { setTimeout(function() { console.log(i); }, 1000); } もちろんi、ループ後の値の10倍、つまり10を出力します。 それで彼の試みは: for(var i = 0; i < 10; i++) { (function(){ var i2 = i; setTimeout(function(){ console.log(i2); }, 1000) })(); } 期待どおりに0〜9を印刷します。 私は彼がキャプチャにクロージャーを使用していないと彼に話しましたi、しかし彼は彼がそうであると主張します。私は、forループ本体を別の内部に配置して(無名関数をに渡す)、再度10回10を出力することによって、クロージャーを使用しないことを証明しました。彼の関数をaに保存し、ループの後に実行した場合も同じことが当てはまります。10を10回出力します。したがって、私の議論は、彼がの値を実際にキャプチャしておらず、バージョンをクロージャーではないということです。setTimeoutsetTimeoutvari 私の試みは: for(var i = 0; i < 10; …

12
JavaScript関数でグローバル変数を定義する
JavaScript関数でグローバル変数を定義することは可能ですか? trailimage(makeObj関数で宣言された)変数を他の関数で使用したい。 <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <script type="text/javascript"> var offsetfrommouse = [10, -20]; var displayduration = 0; var obj_selected = 0; function makeObj(address) { **var trailimage = [address, 50, 50];** document.write('<img id="trailimageid" src="' + trailimage[0] + '" border="0" style=" position: absolute; visibility:visible; left: 0px; top: 0px; width: ' …

19
AngularJSのコントローラー間で通信する正しい方法は何ですか?
コントローラ間で通信する正しい方法は何ですか? 私は現在、次のような恐ろしいファッジを使用していますwindow: function StockSubgroupCtrl($scope, $http) { $scope.subgroups = []; $scope.handleSubgroupsLoaded = function(data, status) { $scope.subgroups = data; } $scope.fetch = function(prod_grp) { $http.get('/api/stock/groups/' + prod_grp + '/subgroups/').success($scope.handleSubgroupsLoaded); } window.fetchStockSubgroups = $scope.fetch; } function StockGroupCtrl($scope, $http) { ... $scope.select = function(prod_grp) { $scope.selectedGroup = prod_grp; window.fetchStockSubgroups(prod_grp); } }
473 scope  angularjs 

8
スコーピングルールの簡単な説明?
Pythonスコーピングルールとは正確には何ですか? コードがある場合: code1 class Foo: code2 def spam..... code3 for code4..: code5 x() どこにありxますか?可能な選択肢には、以下のリストが含まれます。 囲んでいるソースファイル クラスの名前空間 関数定義内 forループのインデックス変数 forループの内部 また、実行中に、関数spamがどこかに渡された場合のコンテキストもあります。そして、おそらくラムダ関数は少し異なって渡しますか? どこかに単純な参照またはアルゴリズムがあるはずです。中級のPythonプログラマーにとって混乱する世界です。

2
正しいBeanスコープの選択方法は?
次のような異なるBeanスコープがあることに気づきました。 @RequestScoped @ViewScoped @FlowScoped @SessionScoped @ApplicationScoped それぞれの目的は何ですか?Beanに適切なスコープを選択するにはどうすればよいですか?
381 jsf  jsf-2  scope  managed-bean 

10
このJavaScriptイディオムの根底にあるものは何ですか?var self = this?
WebKit HTML 5 SQL Storage Notes Demoのソースで以下を確認しました。 function Note() { var self = this; var note = document.createElement('div'); note.className = 'note'; note.addEventListener('mousedown', function(e) { return self.onMouseDown(e) }, false); note.addEventListener('click', function() { return self.onNoteClick() }, false); this.note = note; // ... } 著者は自分自身をいくつかの場所(関数本体)で使用し、これを他の場所(メソッドの引数リストで定義された関数の本体)で使用します。どうしたの?一度気づいた今、どこでも見始めますか?

7
`Export Default Const`が無効なのはなぜですか?
私は次のことが大丈夫だと思います: const Tab = connect( mapState, mapDispatch )( Tabs ); export default Tab; ただし、これは正しくありません。 export default const Tab = connect( mapState, mapDispatch )( Tabs ); しかし、これは問題ありません。 export default Tab = connect( mapState, mapDispatch )( Tabs ); これconstはなぜで無効なのか説明できますexport defaultか?それは不必要な追加であり、export default推定されたものは何constですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.