JavaScript에서는 네 가지 방법을 사용하여 객체가 x 속성을 소유하고 있는지 확인할 수 있습니다.
1. o의 "x". in 연산자는 객체 o에 속성 x가 있는지 확인하는 데 사용할 수 있습니다. x는 객체 자체(고유 속성)이거나 프로토타입 객체에서 상속될 수 있습니다. x는 열거 가능 속성이거나 열거 불가능 속성일 수 있습니다.
2.o.x. o.x 문에 액세스하여 결과가 정의되지 않았는지 여부를 판단하여 x가 존재하는지 확인할 수 있습니다. in 연산자와의 차이점은 속성 x의 값이 객체 o에서 정의되지 않은 것으로 명시적으로 선언된 경우 o 연산의 "x" 결과는 true이고 o.x의 결과는 정의되지 않는다는 것입니다.
3.hasOwnProperty(). o.hasOwnProperty("x") 작업은 o 객체 자체에 x 속성이 있는지 확인하는 데 사용됩니다. 프로토타입 객체에서 상속된 o 속성은 고려되지 않습니다. hasOwnProperty() 작업은 열거 가능한 속성과 열거 불가능한 속성을 모두 확인합니다.
4.propertyIsEnumerable(). o.propertyIsEnumerable("x") 작업은 hasOwnProperty()의 하위 집합인 o 개체 자체가 소유한 열거 가능한 속성만 확인합니다.
위 정보를 바탕으로 정리하면 다음과 같습니다.