JavaScriptにおけるパラメータを介したコンテキスト
別の解決策も存在します。関数 child が
パラメータを受け取るようにしてみましょう:
function child(param) {
// ここにコードが入ります
}
そして、この関数を呼び出す際に、
this を渡します:
function parent() {
child(this); // thisをパラメータとして渡す
function child(param) {
// 変数 param には渡された this の内容が入っています
}
}
child の呼び出しは親関数内で行われるため、
渡される this は意図したものを指します。その後、
この this はパラメータ param に入り、
その形で関数内からアクセスできるようになります。
最終的なコードは以下の通りです:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // thisをパラメータとして渡す
function child(param) {
console.log(param.value); // インプットのvalueを出力
}
}
前のタスクのコードを取り出し、 学んだ2番目の方法を使ってコードの問題を修正してください。