JavaScript is required

Đ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));

A.
undefined is 69 duthaho is 69
B.
function function
C.
duthaho is 69 duthaho is 69
D.
duthaho is 69 function
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