Reflect.getOwnPropertyDescriptor()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
Reflect.getOwnPropertyDescriptor()
정적 메서드는 객체에 주어진 속성이 존재하면, 해당 속성의 서술자를 반환합니다. Object.getOwnPropertyDescriptor()
와 유사합니다.
시도해보기
구문
Reflect.getOwnPropertyDescriptor(target, propertyKey);
매개변수
target
-
속성을 탐색할 객체.
propertyKey
-
자체 속성 서술자를 가져올 속성의 이름.
반환 값
대상 속성이 객체에 존재하면, 그 속성의 서술자. 존재하지 않으면 undefined
.
예제
설명
Reflect.getOwnPropertyDescriptor
메서드는 객체 속성의 서술자를 반환합니다. 만약 존재하지 않는 속성이라면 undefined
를 대신 반환합니다. Object.getOwnPropertyDescriptor()
와의 유일한 차이는 객체가 아닌 대상의 처리 방법입니다.
예제
Reflect.getOwnPropertyDescriptor()
사용하기
Reflect.getOwnPropertyDescriptor({ x: "hello" }, "x");
// {value: "hello", writable: true, enumerable: true, configurable: true}
Reflect.getOwnPropertyDescriptor({ x: "hello" }, "y");
// undefined
Reflect.getOwnPropertyDescriptor([], "length");
// {value: 0, writable: true, enumerable: false, configurable: false}
Object.getOwnPropertyDescriptor()
와의 차이점
Reflect.getOwnPropertyDescriptor()
의 첫 번째 매개변수가 객체가 아니고 원시값이라면 TypeError
가 발생합니다. 반면 Object.getOwnPropertyDescriptor()
는 같은 상황에서 값을 우선 객체로 변환합니다.
Reflect.getOwnPropertyDescriptor("foo", 0);
// TypeError: "foo" is not non-null object
Object.getOwnPropertyDescriptor("foo", 0);
// { value: "f", writable: false, enumerable: true, configurable: false }
명세
Specification |
---|
ECMAScript Language Specification # sec-reflect.getownpropertydescriptor |
브라우저 호환성
BCD tables only load in the browser