⊗jsPmCxCM 440 of 505 menu

JavaScriptにおけるcallメソッドを用いたコンテキストのバインド

これまでに、thisが実際にどのように機能するかを理解しました。 次に、関数がどのコンテキストで呼び出されるかを強制的に指定する(つまり、thisが何に等しいかを強制的に設定する)メソッドを見ていきましょう。

最初に取り上げるメソッドはcallです。例を使ってその動作を見てみましょう。まず、以下のような入力欄があるとします:

<input id="elem" value="text">

この入力欄への参照を取得し、変数elemに代入しましょう:

let elem = document.querySelector('#elem');

次に、関数funcを作成し、その内部でthis.valueを出力します:

function func() { console.log(this.value); }

現時点では、この関数はthisが何を参照しているのかを知りません。 addEventListenerを通じてバインドすれば分かりますが、今回はそうしません。 代わりに、単に関数を呼び出し、thisがelemであるべきだと指定します。

それは次のように行います:func.call(elem)。 このコードは、thiselemに等しいという条件付きで、関数funcfunc()のように単純に呼び出すのと同等です。

したがって、callメソッドの構文は次の通りです:関数.call(オブジェクト)。 すべてをまとめてみましょう:

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // 入力欄のvalueを出力 } func.call(elem);

以下の関数が与えられています:

function func() { console.log(this.value); }

以下の3つの入力欄があります:

<input id="elem1" value="text1"> <input id="elem2" value="text2"> <input id="elem3" value="text3">

callメソッドと関数funcを使用して、各入力欄のvalueを画面に出力してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否