Đoạn code sau sẽ cho kết quả như thế nào?
const person = { name: 'duthaho' };
function sayHi(age) {
return `${this.name} is ${age}`;
}
console.log(sayHi.call(person, 69));
console.log(sayHi.bind(person, 69));
const person = { name: 'duthaho' };
function sayHi(age) {
return `${this.name} is ${age}`;
}
console.log(sayHi.call(person, 69));
console.log(sayHi.bind(person, 69));
Trả lời:
Đáp án đúng: D
Đoạn code trên kiểm tra kiến thức về `call()` và `bind()` trong JavaScript.
- `call()` gọi một hàm với một giá trị `this` và các arguments được cung cấp một cách trực tiếp. Trong trường hợp này, `sayHi.call(person, 69)` gọi hàm `sayHi` với `this` là đối tượng `person` và argument `age` là 69. Kết quả là chuỗi "duthaho is 69" được trả về và in ra console.
- `bind()` tạo ra một hàm mới, trong đó `this` được gán vĩnh viễn cho một đối tượng cụ thể, và các arguments được cung cấp sẽ được gán trước cho hàm đó. Trong trường hợp này, `sayHi.bind(person, 69)` tạo ra một hàm mới, trong đó `this` là đối tượng `person` và `age` là 69. Hàm mới này chưa được gọi ngay mà chỉ được tạo ra, do đó `console.log` sẽ in ra chính định nghĩa của hàm đó (function).
Vì vậy, kết quả in ra sẽ là "duthaho is 69" sau đó là "function".
Tổng hợp 500 câu hỏi trắc nghiệm Javascript có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
