ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_javascript スキルにおけるこのバインディングの概要

Javascript_javascript スキルにおけるこのバインディングの概要

WBOY
WBOYオリジナル
2016-05-16 18:01:511278ブラウズ

この具体的な値は、呼び出しモードによって異なります。
* メソッド呼び出しモード: これはオブジェクトにバインドされます。
* 関数呼び出しモード: これはグローバル オブジェクトにバインドされ、Web ページの場合はウィンドウにバインドされます。
* コンストラクター呼び出しモード: これは新しく生成されたオブジェクトにバインドされます。
* イベント処理呼び出しモードには 2 つのケースがあります。
* を参照してください。これはグローバル オブジェクトにバインドされています

コードをコピー コードは次のとおりです。


...
>
* これは DOM オブジェクトにバインドされています

コードをコピー コードは次のとおりです:
< script type="text/javascript">
function click_handler() {
alert(this); // ボタン DOM ノードに通知します
}
function addhandler () {
document.getElementById('thebutton').onclick = click_handler;

< ;button id='thebutton'> ;Click me!


これの不確実性は、関数呼び出しのコンテキストの変更によって引き起こされます。このコンテキストをより明確にするために、call メソッドと apply メソッドを使用して、このバインディングの値を明確にすることができます。
call と apply の違いはパラメータのみです。call は任意のパラメータ リストを受け入れ、apply はパラメータ配列オブジェクトを受け入れます。これにより、apply が 2 番目の引数として引数を受け入れることもできます。



コードをコピー
コードは次のとおりです。 func.call(obj1,var1,var2) ,var3) func.apply(obj1, [var1,var2,var3])
func.apply(obj1, argument)


ただし、call メソッドと apply メソッドはすぐに実行されます。必要に応じて後で使用すると、次の例のように条件が満たされなくなります。呼び出しが使用されるかどうかに関係なく、13 行目と 14 行目で必要な値 (42) を取得できません。



コードをコピー
コードは次のとおりです: