私は実際これについてはわかりませんが、コールバックとは、ページがサーバーに送信されたときに起こることです。
クライアント作成代理人は、JavaScriptメソッドを呼び出すためのデリゲートを作成するためのものです。
Function.CreateDelegate()メソッドは本当に役に立ちます。
JavaScriptでボタンのクリックイベントを処理するとします。ボタンのクリックを処理する関数で使用できる「this」オブジェクトは、クリックされたボタンです。
ここでボタンクリックイベントをキャプチャして何かをするJavaScriptオブジェクトがあるとします。通常、thisはJavaScriptオブジェクト自体を参照しますが、Objectのメソッドはボタンのクリックイベントを処理するために使用されるため、実際にはイベントを発生させたオブジェクト、つまりボタンを参照します。
これを回避するには、JavaScript applyメソッドを作成しました。したがって、attachEvent/attachEventListenerメソッド(またはAjax.NET Frameworkの$ addHandler()メソッド)でJavaScriptオブジェクトのメソッドを指定してbutton clickイベントをキャプチャする代わりに、実際にはattachEventメソッドでapply()メソッドを使用します。 attachEventListener。これにより、コンテキストを変更し、「this」はイベントを発生させたObjectではなくJavaScript Objectを参照します。
ここで、Function.CreateDelegate()メソッドは、クライアントデリゲートの作成でapplyメソッドを使用するだけではありません。
は、コードを見てみましょう:
Function.createDelegate = function Function$createDelegate(instance, method) {
/// <summary locid="M:J#Function.createDelegate" />
/// <param name="instance" mayBeNull="true"></param>
/// <param name="method" type="Function"></param>
/// <returns type="Function"></returns>
var e = Function._validateParams(arguments, [
{name: "instance", mayBeNull: true},
{name: "method", type: Function}
]);
if (e) throw e;
return function() {
return method.apply(instance, arguments);
}
}
あなたが適用されます()メソッドについて知っておくべき一つのことがあります。実行すると、デリゲートであるメソッドが実行されます。これを回避するには、createDelegateメソッドが上記の処理を行います。
コールバックの仕組みが分かりませんが、JavaScriptオブジェクトがUI要素によって引き起こされるイベントを処理するときは、createDelegate()メソッドを使用することをお勧めします。
私は、コールバックが、ブラウザからサーバーにリクエストが送信されたときに実行されるアクションであると仮定しています。ほとんどの場合、__doPostbackメソッドを使用してコールバックをプリフォームします。このメソッドは、サーバーへのポストバック/コールバックを引き起こすオブジェクトとポストバック/コールバックの引数の2つのパラメータをとります。これはクライアントの代理人にとってまったく異なるものです。最良の答えで
-Frinny
冗長コーディングハッピー
– egidiocs