JavaScriptにおけるapplyメソッドによるコンテキストのバインド
次に、コンテキストをバインドするためのメソッド apply
を見てみましょう。これはメソッド call とほぼ同じように
動作します。違いは、apply ではパラメータがカンマ区切りで列挙されるのではなく、
配列として渡される点です。
タスクによっては、どちらか一方のメソッドが便利な場合があります。
以下は、メソッド apply にパラメータを渡す例です:
func.apply(elem, [param1, param2]);
次のコードがあるとします:
<input id="elem" value="hello">
let elem = document.querySelector('#elem');
function func(surname, name) {
console.log(this.value + ', ' + surname + ' ' + name);
}
func(); // ここで 'hello, John Smit' と出力されるはず
最後の行にメソッド apply を追加して、
画面に 'hello,
John Smit' と表示されるようにしてください。単語 'hello' は
input の value から取得し、'John'
と 'Smit' は関数のパラメータとして渡す必要があります。