Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022년 3월.
명시된 객체에 자체 속성으로 지정된 속성이 있는 경우 Object.hasOwn() 정적 메서드는 true를 반환합니다. 속성이 상속되었거나 존재하지 않으면 이 메서드는 false를 반환합니다.
참고 : Object.hasOwn()은 Object.prototype.hasOwnProperty()를 대체하기 위한 것입니다.
평가할 JavaScript 객체 인스턴스
prop지정된 객체가 직접 명시된 속성을 정의했다면 true. 그렇지 않으면 false
명시된 속성이 값이 null 혹은 undefined일 경우일지라도 객체의 직접적인 속성인 경우 Object.hasOwn() 메서드는 true를 반환합니다. 속성이 상속되었거나 전혀 선언되지 않은 경우 이 메서드는 false를 반환합니다. in 연산자와는 달리, 이 메서드는 객체의 프로토타입 체인에서 지정된 속성을 확인하지 않습니다.
이 메서드는 null 프로토타입 객체 및 상속된 hasOwnProperty() 메서드를 재정의한 객체에 대해 작동하므로 Object.prototype.hasOwnProperty()보다 권장됩니다. Object.prototype.hasOwnProperty.call(obj, prop)와 같은 외부 객체에서 Object.prototype.hasOwnProperty()를 호출하여 이러한 문제를 해결할 수 있지만, Object.hasOwn()을 사용하는 것이 더 직관적입니다.
다음 코드는 example 객체에 prop이라는 속성의 포함 여부를 확인하는 방법을 보여줍니다.
다음 예제에서는 직접적인 속성과 프로토타입 체인을 통해 상속된 속성을 구분합니다.
객체의 열거 가능한 속성을 순회하기 위해서는 반드시 아래와 같이 사용해야 합니다.
그러나 for...in을 사용해야 하는 경우 Object.hasOwn()을 사용하여 상속된 속성을 건너뛸 수 있습니다.
Array의 요소는 직접적인 속성으로 정의되기 때문에 hasOwn() 메서드를 사용하여 특정 인덱스의 존재 여부를 확인할 수 있습니다.
이 섹션에서는 hasOwn()이 hasOwnProperty에 영향을 미치는 문제에 영향을 받지 않는다는 것을 보여줍니다. 첫 번째로, hasOwnProperty()를 재구현한 객체와 함께 사용할 수 있습니다. 아래 예제에서 재구현된 hasOwnProperty() 메서드는 모든 속성에 대해 거짓을 반환하지만 Object.hasOwn() 동작은 변함없이 유지됩니다.
또한 null-프로토타입 객체와 함께 사용할 수도 있습니다. 이는 Object.prototype에서 상속되지 않으므로 hasOwnProperty()에 접근할 수 없습니다.
| ECMAScript® 2027 Language Specification # sec-object.hasown |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025년 7월 4일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.