Reflect.has()

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.has() 정적 메서드는 in 연산자의 함수판입니다.

시도해보기

const object1 = {
  property1: 42,
};

console.log(Reflect.has(object1, "property1"));
// Expected output: true

console.log(Reflect.has(object1, "property2"));
// Expected output: false

console.log(Reflect.has(object1, "toString"));
// Expected output: true

구문

js
Reflect.has(target, propertyKey);

매개변수

target

속성을 탐색할 객체.

propertyKey

탐색할 속성의 이름.

반환 값

객체가 속성을 가지고 있는지 나타내는 Boolean.

예외

targetObject가 아니면 TypeError.

설명

Reflect.has() 메서드는 객체에 속성이 존재하는지 판별할 수 있습니다. in 연산자처럼 동작합니다.

예제

Reflect.has() 사용하기

js
Reflect.has({ x: 0 }, "x"); // true
Reflect.has({ x: 0 }, "y"); // false

// 프로토타입 체인에 존재하는 속성도 true 반환
Reflect.has({ x: 0 }, "toString");

// .has() 처리기 메서드를 가진 Proxy
obj = new Proxy(
  {},
  {
    has(t, k) {
      return k.startsWith("door");
    },
  },
);
Reflect.has(obj, "doorbell"); // true
Reflect.has(obj, "dormitory"); // false

명세

Specification
ECMAScript® 2025 Language Specification
# sec-reflect.has

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
has

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기