問題タブ [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.

0 投票する
4 に答える
4553 参照

javascript - Javascriptコンストラクターの参照インスタンス変数

私は次のようなことをしてオブジェクトの状態を維持しようとしています:

changeStateメソッドを呼び出すときに、インスタンス変数fooを「bar」に設定したいと思います。

例えば:

私の知る限り、内部の無名関数の「this」がウィンドウを指していることが起こっています。何が起こっているのかわかりません。

私は正しい方向に進んでいますか?より良いアプローチはありますか?

0 投票する
1 に答える
194 参照

javascript - JavaScript の無名関数に問題がある

これは次のように表示されます。

  • テスト
  • テスト
  • another_test
  • テスト

onBeforeLoad に割り当てられた匿名関数内の alert() は、「テスト」を表示し続けます。私はこれを試します:

そして、それはうまく機能します。以下が表示されます。

  • テスト
  • テスト
  • テスト
  • テスト

なぜこれが起こっているのか知っている人はいますか?

0 投票する
4 に答える
2880 参照

functional-programming - さまざまなプログラミング言語がクロージャをどのように使用していますか?

私の知る限り、主流の言語の中で、他の人の知識と組み合わせる

  • Objective C
  • C#
  • VB.net
  • Java
  • Python
  • ルビー
  • Javascript
  • 舌足らずの発音
  • Perl

クロージャと無名関数があります。プレーンC/C++にはどちらもありません。

これらの言語のクロージャは同じセマンティクスを持っていますか?それらは日常のプログラミングにとってどれほど重要ですか?

背景: AppleのGrand CentralDispatchを対象としたObjectiveCの新しい追加について読んでいて、ブロックのような構造を言語に導入する方法が本当に1つしかないのか、それとも異なる方法があるのか​​を学ぶ必要があると思いました。

0 投票する
8 に答える
581 参照

c# - 匿名のメソッド/関数: 基本的な機能または OO 原則の違反?

perl や C# などの主流言語による匿名メソッド/関数への最近の動きは、何か重要なことですか、それともオブジェクト指向の原則に違反する奇妙な機能ですか?

最新バージョンの Intel の Thread Building Blocks や Microsoft の PPL や Linq のような最近のライブラリは、そのようなものに依存しているのでしょうか。

現在、Java のような匿名メソッド/関数を拒否している言語は、純粋な OO モデルに固執するという賢明な選択を行っているのでしょうか、それとも基本的なプログラミング機能が欠けているために後れを取っているのでしょうか?

0 投票する
1 に答える
5807 参照

javascript - Javascript無名関数の「this」(スコープ)を取得するにはどうすればよいですか?

匿名関数がそのコンテキストに基づいて動作する必要があるとしましょう。ただし、それが「ウィンドウ」にバインドされているか、不明なオブジェクトにバインドされているかは異なります。

匿名関数が呼び出されたオブジェクトへの参照を取得するにはどうすればよいですか?

編集、いくつかのコード:

あなたは合法的に尋ねるかもしれません、なぜあなたはそのようなことをしたいのですか?さて、私は最初に配列として渡された引数を解凍したかったのです。*Pythonの" "演算子と同じように:

SOを掘り下げて、「apply()」を使用するように指示する投稿を見つけました。

オブジェクト内の場合は現在の「this」を使用し、そうでない場合は「window」を使用するため、興味深いものです。

しかし、私は問題があると思います:

「bar()」自体がオブジェクト内にある場合、「this」は「bar()」コンテナを参照するため、動作しません。

ところで、スコープをパラメーターとして渡さないようにしたいと思います

もちろん、引数と関数を文字列として連結してevalを使用することもできますが、これは、よりクリーンなものが見つからない場合にのみ使用したいと思います。

もちろん、それが不可能な場合(結局のところ、それは可能性があります)、私はします:

編集2:コメントで尋ねられた完全なシナリオ。

私はqunitを使用してJavascriptでユニットテストを実行しています。かっこいいですが、何かが例外を発生させるかどうかを確認する方法がありません。

最も基本的なテストはそのように行われます:

アイデアは次のようなものを作ることです:

私がevalを取り除くことができれば、それは素晴らしいことです。そして、なぜスコープをパラメーターとして使用したくないのですか?手作業で作成するのではなく、スコープの異なる20個の関数を参照するコンテナーをループして、それらすべてをループ内でテストしたい場合があるためです。

0 投票する
3 に答える
9178 参照

syntax - 匿名の Scala 関数の構文

私は Scala についてさらに学んでいますが、http://www.scala-lang.org/node/135の無名関数の例を理解するのに少し苦労しています。以下のコードブロック全体をコピーしました。

modN 関数の適用について混乱しています

例では、1 つの引数で呼び出されます

modN(n: Int)(x: Int) の構文は何を意味しますか?

1 つの引数で呼び出されるため、両方の引数ではないと想定していますが、nums の値が mod 関数でどのように使用されるかはわかりません。

0 投票する
3 に答える
15693 参照

javascript - ループ内の関数 (別の関数を返す) はどのように機能しますか?

onclickJavaScriptで動的に作成された「a」タグのイベントに関数を割り当てようとしています。すべてのタグは、次のようにループで作成されます。

4 つのリンクすべてのアラート値は常に「4」です。かなり明白。グーグルで検索すると、次のコード スニペットを示す投稿に出くわしました。

私は自分のニーズに合わせて微調整し、alert( i ) が正しく機能するようにしましたが、上記のコードが何をするかを正確に説明できる人がいれば幸いです。

0 投票する
4 に答える
94043 参照

c# - 新しいスレッドで単純な関数を実行する最良の方法は?

異なるスレッドで実行したい 2 つの関数があります (これらはデータベースのものであり、すぐには必要ないため)。

機能は次のとおりです。

JavaScript では、匿名関数を作成し、次のような方法で非常に簡単に新しいスレッドで呼び出すことができることを知っています。

C# でこのようなものはありますか?

0 投票する
2 に答える
4983 参照

scala - Scala:変数に関数を「保存」する方法は?

私はScalaを学んでおり、後で評価するために関数をvarに保存しようとしています:

しかし、それはコンパイルされません:

エラー: タイプが一致しません。
見つかった:
必要な: () => 任意
のアクション = 行為

action = actしたがって、関数を割り当てる代わりに、関数を評価して結果を割り当てるように思えます。
関数を評価せずに割り当てる方法がわかりません。

ありがとう!

0 投票する
1 に答える
479 参照

javascript - 配列内のすべての要素が同時にインクリメントされますが、1 つだけをインクリメントする必要があります

次のコードを使用して、特定の要素を囲む 2 次元配列の要素をインクリメントしています。

そして、次のように実行します。

が実行されるたびlist[x][y].number++に、配列全体のすべての要素がインクリメントされます。誰かがなぜこれが起こっているのか説明できますか?