Cho đoạn code sau, kết quả là:
const a = {
stringField: 'Joe',
nestedField: { field: 'Nested' },
functionField: () => 'aReturn'
};
const b = Object.assign({}, a);
b.stringField = 'Bob';
b.nestedField.field = 'Changed';
b.functionField = () => 'bReturn';
console.log(
a.stringField,
a.nestedField.field,
a.functionField()
);
const a = {
stringField: 'Joe',
nestedField: { field: 'Nested' },
functionField: () => 'aReturn'
};
const b = Object.assign({}, a);
b.stringField = 'Bob';
b.nestedField.field = 'Changed';
b.functionField = () => 'bReturn';
console.log(
a.stringField,
a.nestedField.field,
a.functionField()
);
Trả lời:
Đáp án đúng: C
Đoạn code này kiểm tra sự hiểu biết về cách `Object.assign()` hoạt động, đặc biệt là với các đối tượng lồng nhau (nested objects) và các hàm.
1. `const b = Object.assign({}, a);`: Dòng này tạo một bản sao nông (shallow copy) của đối tượng `a` và gán cho `b`. Điều này có nghĩa là các thuộc tính nguyên thủy (primitive) như `stringField` sẽ được sao chép giá trị, nhưng các thuộc tính là đối tượng (như `nestedField`) hoặc hàm (như `functionField`) sẽ được sao chép tham chiếu.
2. `b.stringField = 'Bob';`: Vì `stringField` là một thuộc tính nguyên thủy, việc thay đổi giá trị của nó trong `b` không ảnh hưởng đến `a`. Do đó, `a.stringField` vẫn là `'Joe'`.
3. `b.nestedField.field = 'Changed';`: Vì `nestedField` là một đối tượng, cả `a` và `b` đều tham chiếu đến cùng một đối tượng `nestedField`. Do đó, việc thay đổi `b.nestedField.field` sẽ ảnh hưởng đến `a.nestedField.field`. Kết quả là `a.nestedField.field` sẽ là `'Changed'`.
4. `b.functionField = () => 'bReturn';`: Tương tự như `stringField`, `functionField` cũng được gán lại cho đối tượng `b` bằng một hàm mới. Nó không ảnh hưởng đến hàm `functionField` ban đầu trong đối tượng `a`. Do đó, `a.functionField()` vẫn trả về `'aReturn'`.
Vậy kết quả in ra sẽ là: `Joe Changed aReturn`
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
