Câu hỏi phỏng vấn Javascript
Câu hỏi

Làm sao để deep-freeze một đối tượng trong JavaScript?

Câu trả lời

Để "deep-freeze" một đối tượng trong JavaScript, bạn cần sử dụng phương thức Object.freeze() kết hợp với đệ quy. Phương thức Object.freeze() ngăn chặn việc thêm mới, xóa bỏ, hoặc thay đổi các thuộc tính của đối tượng, cũng như ngăn chặn việc thay đổi prototype của đối tượng. Tuy nhiên, Object.freeze() chỉ áp dụng một "shallow freeze", nghĩa là nó chỉ đóng băng các thuộc tính trực tiếp của đối tượng và không áp dụng cho các đối tượng lồng nhau. Để đạt được một "deep freeze", bạn cần áp dụng đệ quy để đóng băng mọi đối tượng lồng nhau

Dưới đây là một ví dụ về cách thực hiện "deep freeze" một đối tượng:

function deepFreeze(object) {
    // Lấy tất cả tên thuộc tính của đối tượng
    const propNames = Reflect.ownKeys(object);

    // Đóng băng các thuộc tính trước khi đóng băng chính đối tượng
    for (const name of propNames) {
        const value = object[name];
        if ((value && typ...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Tại sao, việc để nguyên phạm vi toàn cục của một trang web và không can thiệp vào nó lại là một ý tưởng tốt?

middle

So sánh sự khác nhau của forEach()map() trong Javascript?

middle

Bạn biết những cách nào để lặp qua các thuộc tính đối tượng trong Javascript?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào