⊗jsPmCxBM 443 of 505 menu

JavaScriptのbindメソッドによるコンテキストのバインド

次のメソッドbindは、関数にコンテキストを永続的にバインドすることを可能にします。このメソッドは結果として新しい関数を返し、その内部ではthisが厳密に指定された値を持つようになります。

例を見てみましょう。

以下のようなinput要素があるとします:

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

このinput要素への参照が変数elemに格納されているとします:

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

また、以下の関数funcがあるとします:

function func(param1, param2) { console.log(this.value + param1 + param2); }

では、bindを使用して、関数funcのコピーでありながら、内部のthisが常にelemと等しくなる新しい関数を作成してみましょう:

let newFunc = func.bind(elem);

これで、変数newFuncに関数が格納されました。この関数を呼び出し、最初のパラメータに'1'、2番目のパラメータに'2'を渡してみましょう(elemには'text'というvalueを持つinput要素が格納されています):

newFunc('1', '2');

すべてのコードをまとめてみましょう:

let elem = document.getElementById('elem'); function func(param1, param2) { console.log(this.value + param1 + param2); } let newFunc = func.bind(elem); newFunc('1', '2'); // 'text12'と出力される

bindの結果を新しい関数newFuncに格納する必要は必ずしもありません。単にfuncを上書きすることもできます。その後、funcは以前と同じ関数ですが、thisが厳密にバインドされています:

func = func.bind(elem);

以下のコードがあるとします:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // ここにbind()を使用した構文を書いてください func('John', 'Smit'); // ここで 'hello, John Smit' と出力されるはず func('Eric', 'Luis'); // ここで 'hello, Eric Luis' と出力されるはず

指定された場所に、関数func内のthisが常に変数elemのinput要素を指すように、bindメソッドを使用した構文を記述してください。

日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否