JavaScript is required

Cho đoạn code sau. Kết quả là:

A.

Border Collie, Wooh

B.

Border Collie, undefined

C.

undefined, Wooh

D.

undefined, undefined

Trả lời:

Đáp án đúng: C


Đoạn code sử dụng prototype để thêm thuộc tính `bark` vào constructor function `Dog`. Tuy nhiên, cách gọi `console.log` lại có sự khác biệt. - `console.log(Dog.breed, Dog.bark);` truy cập thuộc tính `breed` trực tiếp từ constructor `Dog` và thuộc tính `bark` cũng từ `Dog` (không phải một instance của `Dog`). Vì `breed` được định nghĩa trực tiếp trên `Dog` nên nó trả về 'Border Collie'. Tuy nhiên, `bark` là một prototype method, không phải static property, nên khi truy cập trực tiếp từ `Dog` nó sẽ trả về `undefined`. - `Dog.prototype.bark` thực chất là một function, và khi ta truy xuất `Dog.bark` thì kết quả sẽ là `undefined` vì `bark` không được định nghĩa trực tiếp trên `Dog` mà nằm trong prototype của `Dog`. Do đó, kết quả in ra sẽ là "Border Collie, undefined".

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