この具体的な値は、呼び出しモードによって異なります。
* メソッド呼び出しモード: これはオブジェクトにバインドされます。
* 関数呼び出しモード: これはグローバル オブジェクトにバインドされ、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) を取得できません。
コードをコピー
コードは次のとおりです:
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31