
Object.seal(obj) 함수는 객체를 봉인하여 속성을 추가하거나 삭제할 수 없도록 만드는 함수입니다. 하지만, 봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 있습니다.
봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 다음과 같습니다.
- 봉인된 객체의 속성을 직접 수정할 수 있습니다. 예를 들어, `obj.name = 'john';`과 같이 속성을 직접 수정할 수 있습니다.
- 봉인된 객체의 속성을 프로토タイプ 체인에 추가할 수 있습니다. 예를 들어, `Object.defineProperty(Object.prototype, 'name', { value: 'john' });`과 같이 속성을 프로토タイプ 체인에 추가할 수 있습니다.
- 봉인된 객체의 속성을 프로토 타입으로부터 상속받을 수 있습니다. 예를 들어, `Object.create({ name: 'john' });`과 같이 속성을 프로토 타입으로부터 상속받을 수 있습니다.
봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 다음과 같습니다.
- `Object.seal()` 함수를 사용하여 객체를 봉인합니다.
- `Object.defineProperty()` 함수를 사용하여 객체의 속성을 추가하거나 삭제합니다.
- `Object.create()` 함수를 사용하여 객체를 생성하고, 프로토 타입으로부터 속성을 상속받습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
javascript
const obj = { name: 'john' };
Object.seal(obj);
// 봉인된 객체의 속성을 직접 수정할 수 있습니다.
obj.name = 'jane';
// 봉인된 객체의 속성을 프로토 타입 체인에 추가할 수 있습니다.
Object.defineProperty(Object.prototype, 'age', { value: 30 });
// 봉인된 객체의 속성을 프로토 타입으로부터 상속받을 수 있습니다.
const newObj = Object.create({ name: 'jane' });
console.log(newObj.name); // jane
console.log(newObj.age); // 30
위의 예제에서, `obj.name` 속성을 직접 수정할 수 있습니다. 또한, `obj.age` 속성을 프로토 타입 체인에 추가할 수 있습니다. 마지막으로, `newObj` 객체는 `obj` 객체의 프로토 타입으로부터 `name` 속성을 상속받을 수 있습니다.
2025-04-03 02:41