問題タブ [function-binding]
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: プロトタイプに言及せずに Function.prototype.call にアクセスできるのはなぜですか?
ここに私の質問を説明するためのスニペットがあります:
Function.call
動作しますが、String.toUpperCase
動作しません。代わりに、 と書かなければなりませんString.prototype.toUpperCase
。
javascript - 変数としてのクラスメソッドのコンテキスト
例としてクラスがあります:
等々。
質問: にコンテキストをインポートする方法はfindByIndex
?
たとえばfindByIndex
、別のクラスで関数として使用する必要があります。である必要があることは理解していますbind
が、クラスでどのように使用するのですか?
///////////////////////ADD////////////////// これはメソッドです
これは、メソッド iterator を使用する別のクラスです。
ご覧のとおり、2 番目のクラスにはメソッド iterator がありません。しかし、最後に owner(with context(this - L.Book)) のようなイテレータを使用する必要があります
javascript - バインディングとイベント ハンドラー - イベント オブジェクトを渡す
次のようにイベント ハンドラーをバインドするサンプル コードがあります。
イベント ハンドラーが (h1
要素をクリックして) トリガーされると、期待どおり、出力はevent
オブジェクトになります。
次のようにイベントハンドラーをバインドすると:
同じ結果が得られます。
ただし、次のようにバインドすると:
1
の後の最初のパラメーターを取得しますh1
。いずれの場合も、 の値this
は に正しく設定されてh1
いますが、最後のケースでは、渡されたパラメーターが予想されるイベント オブジェクトを置き換えているように見えます。
イベント ハンドラを関数式として書き換えずにイベント オブジェクトを保持するにはどうすればよいですか?
jquery - 内部でjQuery ajaxを使用して名前付き関数をバインドすると404エラーが発生する
クリックボタンが正常に機能するときに ajax リクエストを実行すると、期待どおりに戻ります。しかし、問題は、内部に ajax リクエストを含む要素に関数をバインドしようとしたときです。
関数はこのURLで404エラーを返しますが、ファイルは存在します(同じサーバー、同じドメイン...)
「d_more_hotels」関数内の jQuery.ajax 関数は URL で 404 エラーを返しますが、ファイルは存在します。
すべての変数をチェックし、ログを作成して完全な URL パラメータが使用されていることを確認しましたが、すべて問題ないようです。
WordPress の最終バージョンのフレームワークで作業しています。
:S
どんな助けでも大歓迎です。
編集:
ここに解決策がありますhttps://stackoverflow.com/a/3445620/3676282
WordPress機能の混乱
javascript - JavaScript Function.bind(): デフォルトのこの引数
メソッドの最初のパラメーターbind
は新しいthis
値です。this
問題は、これが自然値を置き換えているように見えることです。特に、イベント リスナーに使用する場合は、トリガー要素ではなくなります。
例えば:
この場合、最初のパラメーターを要素に設定できることがわかりましたh1
。event.target
実際のターゲットを取得するために使用することもできます。ただし、イベント リスナーを複数の要素または匿名要素に割り当てる場合など、必ずしも便利とは限りません。
問題は、bind
のデフォルト値を使用するように指示する簡単な方法はありますthis
か?
ありがとう
注: これは、厳密にはUse bound this and this of function scope in a function bound with bind() as (a) の複製ではありませthis
ん。私が自分自身について言及したものを使用event.currentTarget
するか、新しい方法を作成する必要がありますが、これは私が求めていたものではありません。
ただし、答えが「いいえ」である可能性はありますが、それはできません。そのため、質問を再開するつもりはありません。