問題タブ [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 に答える
195 参照

javascript - JavaScript で要素のコレクションに連鎖メソッドをアタッチする

これは、少なくとも現時点では純粋な実験ですが、興味があります: メソッドを (プロトタイピングを介して) 要素のコレクションにアタッチする方法はありますか? 次のコードをテストしました。

現時点では、Opera で完全に動作します。予想どおり、すべての div 要素に対して _ メソッドが呼び出され、渡された文字列が各要素に対して順番に eval()されます。_ メソッドは連鎖を可能にすることに注意してください。また、_ を呼び出して予測されたxイテレータ変数を各要素の innerHTML に追加することも示されています。

では、2つ質問...

まず、これについてもっと良い方法はありますか?私は長い間、私ができることを望んでいましたdocument.getElementsByTagName('div').style.backgroundColor = "red";が、残念ながら、それはまだ実現していません. これが、私が最初にこれを行っている理由であり、メソッドに簡潔な名前を付けた理由です。私はそれをできるだけ忠実にエミュレートしようとしています。

第二に、これが正しい使い方であると仮定すると、どうすれば Firefox で動作させることができるでしょうか? そのブラウザの相当するものはNodeListですがHTMLCollection、後者のプロトタイプを作成しようとしてもうまくいきません。提案?

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

c# - .NET デリゲートをチェーンする場合、元のインスタンスはどのように (再) 使用されますか?

次の C# コードがあるとします。

テストは がbと同じインスタンスではないことを示しているcため、明らかに+オペレーターがデリゲートの新しいインスタンスを作成しているように見えます。これは正しい仮定ですか?-instance を内部で再利用しますかb、それともメソッド/ターゲット情報を新しいインスタンスにコピーするだけですか?

デリゲートの演算子の実装が見つから+ないようです。デリゲート クラスに含まれていないようです。

誰でもこの問題に光を当てることができますか?

私が尋ねている理由は、タマネギのようにお互いを重ねるいくつかのクラスを作成していて、最も外側のレイヤーが内側のレイヤーを呼び出し、いくつかのデリゲートを取得し、それらのデリゲートにさらにメソッドをアタッチするためです.そうすることで、内部レイヤーから取得したデリゲートが何らかの形で変更されることが懸念されます。その場合、内部参照だけでなく、コピー/クローンを返す必要があります。

これは完全に私のライブラリの内部コードであることに注意してください。したがって、そのような内部データ構造を渡すことは一般的に悪い考えであることはわかっていますが、これらのクラスで安全に実行できる場合はそうします。

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

c# - 複数の呼び出しを伴うコンストラクターの連鎖

以下の私のコードを考えると、最初の WebTestingApp コンストラクターが新しいインスタンスを返す前に 2 番目のコンストラクターを呼び出す方法はありますか? コンストラクターにいくつかの読み取り専用フィールドを設定したいのですが、コピー/貼り付けを除いて、どうすればよいかわかりません。

答えはコンストラクターチェーンと関係があると思いますが、2番目の WebTestingApp コンストラクターが暗黙的に base() を呼び出すため、その方法がわかりません (クラスの外部ユーザーが持つべきではないため、これは重要です) IRemoteFile および IWebServiceGateway インスタンスを提供します)。

基本クラス TestingApp のコンストラクターは次のとおりです。

WebTestingApp は TestingApp から派生しています。S3File と WebServiceGateway はシングルトンです。

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

java - Java例外連鎖の質問

メソッドがあると想像してください:

Java API の場合:

関数チェーン: funcB() -> ByteBuffer.wrap()

私の質問は、例外をスローするこの Java api メソッドの周りで funcB が try-catch ブロックを実行する必要がないのはなぜですか。funcB は、try-catch ブロックなしで正常にコンパイルされます。答えは、Java APIメソッドが例外をスローするが、「IndexOutOfBoundsExceptionをスローする」と宣言されていないという事実に関係していると思います

関数チェーン: funcA() -> funcB() -> ByteBuffer.wrap(...)

次の質問は、funcB を「funcB() が IndexOutOfBoundsException をスローする」に変更するとき、なぜfuncAが funcB のスローされた例外をキャッチする必要がないのかということです。コンパイラは深く掘り下げて、ByteBuffer.wrap(...) が「wrap() が IndexOutOfBoundsException をスローする」と宣言されていないことを認識するので、すべての呼び出し元は実際にはサブ呼び出し元 (この場合は funcB) でさえ実際に何かをキャッチする必要はありません。 「funcB が IndexOutOfBoundsException をスローする」と宣言されていますか?

わかりにくかったり、わかりにくかったらすみません。

助けてください。

jbu

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

jquery - jQuery: イベントの連鎖 - コード修正

以下のコードで、slideup関数をfadeout('slow')に置き換える方法を教えてください。

SlideUp の代わりに、スピードのある FadeOut 機能を使用したいのですが、どうすればイベントを連鎖させることができますか?

SlideDown も FadeIn('slow') に置き換えたい

前もって感謝します...

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

c++ - C++ のオーバーフロー チェーンで fstream ファイルを操作する

レコードを使用してバイナリ ファイルを読み書きしたいファイルがあります。最初は空のファイルがあり、新しいレコードを追加したいのですが、シーク機能を使用すると、場所が (-1) になります。チェックすると、ファイルに何も書き込まれていないことがわかります。コードを参照してください:

ファイルに何も書き込めない理由を誰かが教えてくれれば、本当に感謝します。

前もって感謝します、

グレッグ

0 投票する
15 に答える
41847 参照

jquery - JQueryを使用してカスタム関数をチェーンまたはキューに入れるにはどうすればよいですか?

HTMLのさまざまな部分にさまざまなアニメーションを実行する複数の関数があります。これらの関数をチェーンまたはキューに入れて、アニメーションを同時にではなく順番に実行したいと思います。

ユーザーがさまざまなボタンやリンクをクリックしているように見えるように、複数のイベントを順番に自動化しようとしています。

おそらくコールバック関数を使用してこれを行うことができますが、その後、さまざまな関数からすべてのアニメーションをプルして、正しいパターンで再グループ化する必要があります。

jqueryの「キュー」は役に立ちますか?キューのドキュメントを理解できませんでした。

例、JQuery:

HTML:

ありがとう。

編集:私はタイマーでそれを試しましたが、それを行うためのより良い方法があると思いました。

編集#2:

具体的に説明します。ページのさまざまな要素でクリック&ホバーイベントにバインドされた複数の関数があります。通常、これらの関数は互いに関係がありません(互いに参照しません)。既存の関数のコードを変更せずに、これらのイベントを通過するユーザーをシミュレートしたいと思います。

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

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

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

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

私が知っていること:

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

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

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

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

haskell - Haskell: モナドの takeWhile?

Haskell から呼び出す C で記述された関数がいくつかあります。これらの関数は を返しIO (CInt)ます。戻り値に関係なく、すべての関数を実行したい場合がありますが、これは簡単です。サンプルコードのために、これは現在何が起こっているかの一般的な考えです:

望む副作用が得られ、結果は気にしません。しかし、ここでは、目的の結果を返さない最初の項目の直後に実行を停止する必要があります。戻り値が 4 以上の場合、実行を停止する必要があるとしましょう。その場合、私がやりたいことは次のとおりです。

これは私にこのエラーを与えます:

そして、それは私には理にかなっています-結果はまだ IO モナドに含まれており、IO モナドに含まれている 2 つの値を単純に比較することはできません。これがまさにモナドの目的であることを知っています-結果を連鎖させ、特定の条件が満たされたときに操作を破棄します-しかし、この場合、IOモナドを「ラップ」して、条件でチェーンの実行を停止する簡単な方法はありますか?のインスタンスを記述せずに、私の選択のMonadPlus?

ftakeWhileの目的で、 から値を「持ち上げる」ことはできますか?

これは、ファンクターが適合するソリューションですか? ファンクターはまだ「クリック」していませんが、これはファンクターを使用するのに良い状況かもしれないという印象を持っています。


アップデート:

@sth は私が望むものに最も近い答えを持っています - 実際、それは私が目指していたものとほぼ同じですが、明示的に再帰的でない標準的な解決策があるかどうかを知りたいです - これは Haskell です。全て!質問の言い方を振り返ってみると、自分が望んでいる行動について十分に明確ではなかったことがわかります。

上記fの例で使用した関数は、単なる例です。実際の関数は C で記述されており、その副作用のみに使用されます。mapM_ f (takeWhile (<4) [0..5])実行されるまで、入力が実際に成功するか失敗するかがわからないため、@Tomの提案を使用できません。

返されたリストも実際には気にしません。リストが使い果たされるか、最初の C 関数が失敗コードを返すまで、C 関数を呼び出したいだけです。

C スタイルの擬似コードでは、私の動作は次のようになります。

繰り返しますが、@ sthの回答は、結果が破棄される可能性がある(すべきか?)ことを除いて、私が望む正確な動作を実行します。関数は私のdropWhileM_目的と同等です。なぜそのような関数やtakeWhileM_Control.Monad にないのですか? メーリング リストで同様の議論があったようですが、それについては何も語られていないようです。

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

jquery - jQuery セレクター :lt と :gt の連鎖

9 行を超えるテーブルがあります。

これを行うと: $('table tr:gt(3):lt(6)')、最後に 3 つまたは 6 つの要素を受け取る必要がありますか? また、その理由は? すべてのセレクターが同じプライマリ セレクションに適用されているか、それとも異なるセレクションに連続して適用されているか?