Đoạn code sau sẽ có kết quả là:
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const ti = new Person('du', 'ti');
const teo = Person('du', 'teo');
console.log(ti);
console.log(teo);
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const ti = new Person('du', 'ti');
const teo = Person('du', 'teo');
console.log(ti);
console.log(teo);
Trả lời:
Đáp án đúng: A
Đoạn code trên minh họa cách sử dụng hàm tạo (constructor) trong JavaScript. Khi sử dụng từ khóa `new`, một đối tượng mới được tạo ra và `this` trong hàm `Person` sẽ tham chiếu đến đối tượng mới này. Trong trường hợp `const ti = new Person('du', 'ti');`, `ti` sẽ là một đối tượng `Person` với các thuộc tính `firstName` là 'du' và `lastName` là 'ti'.
Tuy nhiên, khi gọi `Person('du', 'teo');` mà không có từ khóa `new`, `this` sẽ tham chiếu đến đối tượng global (trong trình duyệt là `window`, trong Node.js là `global`). Do đó, `firstName` và `lastName` sẽ được gán vào `window.firstName` và `window.lastName` (hoặc `global.firstName` và `global.lastName`). Vì hàm `Person` không trả về giá trị nào một cách tường minh, nó sẽ trả về `undefined` theo mặc định.
Vì vậy, `console.log(ti)` sẽ in ra đối tượng `Person {firstName: "du", lastName: "ti"}`, và `console.log(teo)` sẽ in ra `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

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
