Graceful Light

Object freeze, seal, preventExtensions - 객체 수정 제어

2016-12-22


es5부터 객체의 수정을 제어할 수 있다.
ie9부터 지원하고, ie8은 es5-sham을 추가하면 된다.

freeze method

객체를 불변으로 만든다.

예제

seal method

확장, 축소는 불가능하지만 writable 쓰기 가능하다.

예제

preventExtensions method

확장만 불가능하다.

예제

설명

불변하게 하려면 얼리고,
수정이 가능하게 하려면 봉인하고
추가만 불가능하게 하려면 확장방지하자

client에서 객체 변조를 못하게 전역변수를 얼려버리자

여담

freeze는 중첩된 object에 적용이 안 되는데,
이 때 deepFreeze 함수를 사용해 재귀적으로 객체를 얼려버리면 된다.

deepFreeze method

mdn을 참조했다.

소스

🍺

Buy me a beer 🍗

공유하려면 QR코드를 스캔해주세요