
439
14.2 객체 확장성
}
});
let o
=
{c: 1, get count() {return this.c++;}}; //
게터가
있는
객체를
정의합니다
.
let p
=
Object.assign({}, o); //
프로퍼티
값을
복사합니다
.
let q
=
Object.assignDescriptors({}, o); //
프로퍼티
서술자를
복사합니다
.
p.count //
=
> 1: count
는
이제
데이터
프로퍼티이므로
p.count //
=
> 1:
늘어나지
않습니다
.
q.count //
=
> 2:
처음
복사할
때
증가하며
q.count //
=
> 3:
게터
메서드를
복사했으므로
계속
증가합니다
.
14.2
확장 가능 속성은 객체에 새로운 프로퍼티를 추가할 수 있는지 결정합니다. 일반적
인 자바스크립트 객체는 기본적으로 확장 가능이지만 이 절에서 설명하는 함수로
바꿀 수 있습니다.
객체가 확장 가능인지 확인하려면
Object.isExtensible()
에 전달하십시오. 객체
를 확장 불가로 만들려면
Object.preventExtensions()
에 전달하십시오. 이렇게 하
면 객체에 새로운 프로퍼티를 추가하려 할 때 스트릭트 모드에서는 TypeError가 일
어나고 일반 모드에서는 에러 없이 조용히 실패합니다. 또한 ...