Ngữ cảnh qua tham số trong JavaScript
Tồn tại một giải pháp khác cho vấn đề. Hãy làm sao cho
hàm child nhận một
tham số:
function child(param) {
// code sẽ ở đây
}
Và khi gọi hàm này, chúng ta sẽ truyền
this vào nó:
function parent() {
child(this); // truyền this làm tham số
function child(param) {
// trong biến param chứa nội dung this đã được truyền
}
}
Vì việc gọi child được thực hiện
trong hàm cha, nên this được truyền
cũng trỏ đến đúng đối tượng cần thiết. Sau đó,
this này đi vào tham số param
và sẽ có thể truy cập được bên trong hàm dưới dạng này.
Đây là code cuối cùng:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // truyền this làm tham số
function child(param) {
console.log(param.value); // in ra value của input
}
}
Hãy lấy code từ bài tập trước và sửa chữa vấn đề của code bằng cách sử dụng phương pháp thứ hai đã học.