JavaScript - 문제 미리보기
문제 652
hard
다음 코드에서 각 단계별로 가능한 작업을 올바르게 설명한 것은 무엇인가요?
```javascript
"use strict";
const data = {name: "JavaScript", version: "ES6"};
// 단계 1: 초기 상태
// 단계 2: Object.preventExtensions(data);
// 단계 3: Object.seal(data);
// 단계 4: Object.freeze(data);
```
```javascript
"use strict";
const data = {name: "JavaScript", version: "ES6"};
// 단계 1: 초기 상태
// 단계 2: Object.preventExtensions(data);
// 단계 3: Object.seal(data);
// 단계 4: Object.freeze(data);
```
정답: B
JavaScript의 객체 보호 메서드들은 단계적으로 더 강한 제한을 가합니다:
1. 단계 1 (일반 객체): 속성 추가, 수정, 삭제 모두 가능
2. 단계 2 (preventExtensions):
1) ❌ 속성 추가 불가능
2) ✅ 기존 속성 수정 가능
3) ✅ 기존 속성 삭제 가능
3. 단계 3 (seal):
1) ❌ 속성 추가 불가능 (preventExtensions 포함)
2) ✅ 기존 속성 수정 가능
3) ❌ 기존 속성 삭제 불가능
4. 단계 4 (freeze):
1) ❌ 속성 추가 불가능 (seal 포함)
2) ❌ 기존 속성 수정 불가능
3) ❌ 기존 속성 삭제 불가능
각 메서드는 이전 단계의 제한을 포함하면서 추가적인 제한을 가합니다. `freeze`는 객체를 완전히 불변(immutable)으로 만드는 가장 강력한 보호 수준입니다.
1. 단계 1 (일반 객체): 속성 추가, 수정, 삭제 모두 가능
2. 단계 2 (preventExtensions):
1) ❌ 속성 추가 불가능
2) ✅ 기존 속성 수정 가능
3) ✅ 기존 속성 삭제 가능
3. 단계 3 (seal):
1) ❌ 속성 추가 불가능 (preventExtensions 포함)
2) ✅ 기존 속성 수정 가능
3) ❌ 기존 속성 삭제 불가능
4. 단계 4 (freeze):
1) ❌ 속성 추가 불가능 (seal 포함)
2) ❌ 기존 속성 수정 불가능
3) ❌ 기존 속성 삭제 불가능
각 메서드는 이전 단계의 제한을 포함하면서 추가적인 제한을 가합니다. `freeze`는 객체를 완전히 불변(immutable)으로 만드는 가장 강력한 보호 수준입니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.