JavaScript

deepFreeze

javascript,object,recursion,intermediate

Tạo Deep freezes an object. Trước hết chúng ta phải xác định được những properties có phải là Object.isFrozen()

Sử dụng Object.keys() get all properties của một object, sau đó sử dụng Array.prototype.forEach() lặp lại những properties đó, trong chúng ta sẽ check  nếu return về true, còn nếu false thì chúng ta sẽ  return Object.freeze()

const deepFreeze = obj => {
  Object.keys(obj).forEach(prop => {
    if (obj[prop] === 'object' && !Object.isFrozen(obj[prop])) deepFreeze(v[prop]);
  });
  return Object.freeze(obj);
};
Sử dụng deepFreeze()
'use strict';
const o = deepFreeze([1, [2, 3]]);

o[0] = 3; // not allowed
o[1][0] = 4; // not allowed as well

Recommended snippets

Đăng ký nhận bản tin về "Học code 30 seconds"