Введение
В этом практическом занятии мы изучим, как.deep freeze объект в JavaScript. Мы узнаем, как использовать метод Object.freeze() рекурсивно для заморозки всех свойств объекта, чтобы сделать его неизменяемым. В конце этого практического занятия вы будете лучше понимать, как предотвратить модификацию объектов и обеспечить целостность данных в своем коде JavaScript.
Как.deep freeze объект в JavaScript
Чтобы.deep freeze объект в JavaScript, следуйте следующим шагам:
- Используйте
Object.keys(), чтобы получить все свойства переданного объекта. - Перебирайте свойства с использованием
Array.prototype.forEach(). - Рекурсивно вызовите
Object.freeze()для всех свойств, которые являются объектами, применяяdeepFreeze()при необходимости. - Наконец, используйте
Object.freeze(), чтобы заморозить заданный объект.
Вот код:
const deepFreeze = (obj) => {
Object.keys(obj).forEach((prop) => {
if (typeof obj[prop] === "object") deepFreeze(obj[prop]);
});
return Object.freeze(obj);
};
Вы можете протестировать.deep frozen объект с использованием следующего кода:
"use strict";
const val = deepFreeze([1, [2, 3]]);
val[0] = 3; // не разрешается
val[1][0] = 4; // также не разрешается
Вышеприведенный код вызовет ошибку, так как объект val.deep frozen и не может быть модифицирован.
Резюме
Поздравляем! Вы завершили практическое занятие по.deep freeze объекту. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.