問題タブ [method-chaining]

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 投票する
2 に答える
2402 参照

eclipse - Eclipse はメソッドチェーン セッターを生成できますか

次のように、メソッドチェーン セッター (設定されているオブジェクトを返すセッター) を生成したいと思います。

これにより、ワンライナーのインスタンス化が簡単になり、読みやすくなります。

これを行うために Eclipse のテンプレートを変更できますか? コンテンツを含めるように変更しましたreturn this;が、署名は変更されていません。

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

ruby-on-rails - RailsでAJAX呼び出しを連鎖させる方法は? 最初の呼び出しの結果に応じて実行される一連の呼び出し

初期データを取得するAJAX呼び出しがあります。このデータに基づいて、一連の AJAX 呼び出しを開始し、ページのさまざまな部分を更新したいと考えています。XMLHttpRequest と onreadystatechange を使用して JS を使用し、ステータスをチェックして実行できます。最初の呼び出しが完了し、応答が 200 の場合、一連の AJAX 呼び出しを開始できます。

Railsで同じことを行うには? それともプレーンな JS を書くべきですか (Rails は初めてです)。

0 投票する
5 に答える
7554 参照

java - メソッドチェーンと継承は一緒にうまく機能しませんか?

この質問はC++のコンテキストで行われていますが、Javaについて興味があります。仮想メソッドに関する懸念は当てはまりませんが(私は思います)、このような状況にある場合は次のようになります。

thisこの種のクラス階層では、オブジェクトタイプを(効果的に)アップキャストしない方法で戻る方法はありますか?

0 投票する
5 に答える
29465 参照

javascript - javascriptで基本的なオブジェクト/関数チェーンはどのように機能しますか?

jQuery スタイルの関数チェーンの原則を頭の中で真っ直ぐに理解しようとしています。これにより、次のことを意味します。

1 つの例が機能するようになりましたが、別の例は機能しません。以下にそれらを掲載します。私は常に、何かがどのように機能するかの第一原則の基礎を学び、その上に構築できるようにしたいと考えています。これまで、連鎖がどのように機能するかについて大雑把で大まかな理解しかできておらず、インテリジェントにトラブルシューティングできないバグに遭遇しています。

私が知っていること:

  1. 関数は自分自身を返す必要があります。別名「これを返す」です。
  2. 連鎖可能な関数は、親関数、別名 jQuery に存在する必要があります。.css() は jQuery() のサブメソッドであるため、jQuery().css();
  3. 親関数は、それ自体またはそれ自体の新しいインスタンスを返す必要があります。

この例はうまくいきました:

しかし、これはそうではありません:

0 投票する
18 に答える
80398 参照

oop - メソッド連鎖 - なぜそれが良い習慣なのか、そうでないのか?

メソッドチェーンは、結果が別のメソッドに対して呼び出されるようにするために、オブジェクト自体を返すオブジェクトメソッドの実践です。このような:

これは、読み取り可能なコード、または「流暢なインターフェース」を生成するため、良い習慣と見なされているようです。しかし、私には、代わりに、オブジェクト指向自体によって暗示されているオブジェクト呼び出し表記を壊しているように見えます。結果のコードは、オブジェクト指向コードが一般的に期待される方法である、前のメソッドの結果に対するアクションの実行を表していません。

この違いにより、「結果のオブジェクトを呼び出す」というドット表記に 2 つの異なる意味が生まれます: 連鎖のコンテキストでは、上記の例は、実際にはスケジュールを保存することを意図しているにもかかわらず、参加者オブジェクトを保存するものとして読み取られます。 getSchedule が受け取るオブジェクト。

ここでの違いは、呼び出されたメソッドが何かを返すと予想されるかどうかにあることを理解しています (その場合、チェーンのために呼び出されたオブジェクト自体が返されます)。しかし、これら 2 つのケースは、表記自体からは区別できず、呼び出されるメソッドのセマンティクスからのみ区別できます。メソッド チェーンを使用しない場合、メソッド呼び出しが前の呼び出しの結果に関連するもので動作することを常に知ることができます。チェーンを使用すると、この仮定が崩れ、実際のオブジェクトが何であるかを理解するためにチェーン全体を意味的に処理する必要があります。という本当にそうです。例えば:

最後の 2 つのメソッド呼び出しは getSocialStream の結果を参照し、その前のメソッド呼び出しは参加者を参照します。コンテキストが変化するチェーンを実際に記述するのは悪い習慣かもしれませんが (そうですか?)、それでも、似ているように見えるドット チェーンが実際に同じコンテキスト内に保持されているのか、それとも結果にのみ作用するのかを常に確認する必要があります。 .

私には、メソッド チェーンは表面的には読み取り可能なコードを生成するように見えますが、ドット表記の意味をオーバーロードすると、混乱がさらに大きくなるだけです。私は自分自身をプログラミングの第一人者とは考えていないので、間違いは私のせいだと思います。だから:私は何が欠けていますか?メソッドチェーンがどういうわけか間違っていることを理解していますか? メソッドの連鎖が特に良い場合と、特に悪い場合はありますか?

補足: この質問は、質問としてマスクされた意見の表明として読み取られる可能性があることを理解しています。しかし、そうではありません - 私は、連鎖がなぜ良い習慣であると考えられているのか、そしてそれが本来のオブジェクト指向の表記法を破ると考える上でどこが間違っているのかを心から理解したいと思っています。

0 投票する
5 に答える
590 参照

php - PHP メソッドチェーン - リフレクティング?

メソッド呼び出しのチェーンを振り返って、呼び出しのチェーンのどの時点にいるかを判断することは可能ですか? 少なくとも、メソッドがチェーンの最後の呼び出しであるかどうかを識別することは可能ですか?

オブジェクトのインスタンスを返すプロパティを使用して同じことを行うことは可能ですか?

0 投票する
6 に答える
1063 参照

c# - ICollection を C# でより流暢にするシンプルでエレガントな方法はありますか?

例: カスタム コレクション クラスのAddメソッドをICollection使用してメソッド チェーンと流暢な言語を実装したいので、これを実行できます。

いくつかのオプションを考えることができますが、それらは面倒で、ICollection を別のインターフェイスにラップするなどの作業が必要です。

0 投票する
5 に答える
2570 参照

javascript - JavaScriptメソッド連鎖の課題

(この質問は実際には言語に限定されていないので、他の言語でも解決策を提出してください。)

JavaScriptで次のようなものを書くことができるかどうか疑問に思っていました。

従来の方法はどこに書くか

これが初心者の質問である場合は申し訳ありません:p

0 投票する
7 に答える
3571 参照

javascript - jQueryチェーンでメソッドの実行順序を決定するものは何ですか?

HTMLコード

jQuery コード

期待される結果

#バークリック時

  1. p要素を隠す#foo
  2. pに追加#bar
  3. p現在の子であるshow#bar

実結果

  1. pに追加#bar
  2. p要素を隠す#foo
  3. p現在の子であるshow#bar

質問

  • jQueryチェーンでメソッドの実行順序を決定するものは何ですか?
  • 次の開始前に各イベントが確実に完了するようにするにはどうすればよいですか?
0 投票する
2 に答える
11273 参照

javascript - 以前に添付されたメソッドもチェーンして、フォームの onSubmit イベントにイベントを添付する方法は?

私のアプリケーションには数百ページあります。ここで、フォームにイベントdisablePageを添付する必要があります。onSubmitすべてのページに移動して次のように書きたくありません。

私が今していることは: -

common.js ファイルからの抜粋。【全ページ収録】

この時点まではすべて問題なく、disablePage()すべてのページのフォームに添付されています。

しかし、問題は、誰かが既にメソッドをonSubmitorにアタッチしている場合onLoad、それも実行する必要があることです。私のコードによると、コードは決して実行されないと思います。彼らのメソッドもチェーンするにはどうすればよいですか?

JQueryはありません。