問題タブ [anonymous-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascriptコンストラクターの参照インスタンス変数
私は次のようなことをしてオブジェクトの状態を維持しようとしています:
changeStateメソッドを呼び出すときに、インスタンス変数fooを「bar」に設定したいと思います。
例えば:
私の知る限り、内部の無名関数の「this」がウィンドウを指していることが起こっています。何が起こっているのかわかりません。
私は正しい方向に進んでいますか?より良いアプローチはありますか?
javascript - JavaScript の無名関数に問題がある
これは次のように表示されます。
- テスト
- テスト
- another_test
- テスト
onBeforeLoad に割り当てられた匿名関数内の alert() は、「テスト」を表示し続けます。私はこれを試します:
そして、それはうまく機能します。以下が表示されます。
- テスト
- テスト
- テスト
- テスト
なぜこれが起こっているのか知っている人はいますか?
functional-programming - さまざまなプログラミング言語がクロージャをどのように使用していますか?
私の知る限り、主流の言語の中で、他の人の知識と組み合わせる
- Objective C
- C#
- VB.net
Java- Python
- ルビー
- Javascript
- 舌足らずの発音
- Perl
クロージャと無名関数があります。プレーンC/C++にはどちらもありません。
これらの言語のクロージャは同じセマンティクスを持っていますか?それらは日常のプログラミングにとってどれほど重要ですか?
背景: AppleのGrand CentralDispatchを対象としたObjectiveCの新しい追加について読んでいて、ブロックのような構造を言語に導入する方法が本当に1つしかないのか、それとも異なる方法があるのかを学ぶ必要があると思いました。
c# - 匿名のメソッド/関数: 基本的な機能または OO 原則の違反?
perl や C# などの主流言語による匿名メソッド/関数への最近の動きは、何か重要なことですか、それともオブジェクト指向の原則に違反する奇妙な機能ですか?
最新バージョンの Intel の Thread Building Blocks や Microsoft の PPL や Linq のような最近のライブラリは、そのようなものに依存しているのでしょうか。
現在、Java のような匿名メソッド/関数を拒否している言語は、純粋な OO モデルに固執するという賢明な選択を行っているのでしょうか、それとも基本的なプログラミング機能が欠けているために後れを取っているのでしょうか?
javascript - Javascript無名関数の「this」(スコープ)を取得するにはどうすればよいですか?
匿名関数がそのコンテキストに基づいて動作する必要があるとしましょう。ただし、それが「ウィンドウ」にバインドされているか、不明なオブジェクトにバインドされているかは異なります。
匿名関数が呼び出されたオブジェクトへの参照を取得するにはどうすればよいですか?
編集、いくつかのコード:
あなたは合法的に尋ねるかもしれません、なぜあなたはそのようなことをしたいのですか?さて、私は最初に配列として渡された引数を解凍したかったのです。*
Pythonの" "演算子と同じように:
SOを掘り下げて、「apply()」を使用するように指示する投稿を見つけました。
オブジェクト内の場合は現在の「this」を使用し、そうでない場合は「window」を使用するため、興味深いものです。
しかし、私は問題があると思います:
「bar()」自体がオブジェクト内にある場合、「this」は「bar()」コンテナを参照するため、動作しません。
ところで、スコープをパラメーターとして渡さないようにしたいと思います。
もちろん、引数と関数を文字列として連結してevalを使用することもできますが、これは、よりクリーンなものが見つからない場合にのみ使用したいと思います。
もちろん、それが不可能な場合(結局のところ、それは可能性があります)、私はします:
編集2:コメントで尋ねられた完全なシナリオ。
私はqunitを使用してJavascriptでユニットテストを実行しています。かっこいいですが、何かが例外を発生させるかどうかを確認する方法がありません。
最も基本的なテストはそのように行われます:
アイデアは次のようなものを作ることです:
私がevalを取り除くことができれば、それは素晴らしいことです。そして、なぜスコープをパラメーターとして使用したくないのですか?手作業で作成するのではなく、スコープの異なる20個の関数を参照するコンテナーをループして、それらすべてをループ内でテストしたい場合があるためです。
syntax - 匿名の Scala 関数の構文
私は Scala についてさらに学んでいますが、http://www.scala-lang.org/node/135の無名関数の例を理解するのに少し苦労しています。以下のコードブロック全体をコピーしました。
modN 関数の適用について混乱しています
例では、1 つの引数で呼び出されます
modN(n: Int)(x: Int) の構文は何を意味しますか?
1 つの引数で呼び出されるため、両方の引数ではないと想定していますが、nums の値が mod 関数でどのように使用されるかはわかりません。
javascript - ループ内の関数 (別の関数を返す) はどのように機能しますか?
onclick
JavaScriptで動的に作成された「a」タグのイベントに関数を割り当てようとしています。すべてのタグは、次のようにループで作成されます。
4 つのリンクすべてのアラート値は常に「4」です。かなり明白。グーグルで検索すると、次のコード スニペットを示す投稿に出くわしました。
私は自分のニーズに合わせて微調整し、alert( i ) が正しく機能するようにしましたが、上記のコードが何をするかを正確に説明できる人がいれば幸いです。
c# - 新しいスレッドで単純な関数を実行する最良の方法は?
異なるスレッドで実行したい 2 つの関数があります (これらはデータベースのものであり、すぐには必要ないため)。
機能は次のとおりです。
JavaScript では、匿名関数を作成し、次のような方法で非常に簡単に新しいスレッドで呼び出すことができることを知っています。
C# でこのようなものはありますか?
scala - Scala:変数に関数を「保存」する方法は?
私はScalaを学んでおり、後で評価するために関数をvarに保存しようとしています:
しかし、それはコンパイルされません:
エラー: タイプが一致しません。
見つかった:
必要な: () => 任意
のアクション = 行為
action = act
したがって、関数を割り当てる代わりに、関数を評価して結果を割り当てるように思えます。
関数を評価せずに割り当てる方法がわかりません。
ありがとう!
javascript - 配列内のすべての要素が同時にインクリメントされますが、1 つだけをインクリメントする必要があります
次のコードを使用して、特定の要素を囲む 2 次元配列の要素をインクリメントしています。
そして、次のように実行します。
が実行されるたびlist[x][y].number++
に、配列全体のすべての要素がインクリメントされます。誰かがなぜこれが起こっているのか説明できますか?