0. 전제조건
자바스크립트 객체의 속성은 두 가지 형태로 존재합니다. 하나는 인스턴스에 있고 다른 하나는 프로토타입 객체에 있습니다.
위에 따르면 속성 감지 시 4가지 상황이 발생합니다
인스턴스 또는 프로토타입 객체에 존재하지 않습니다
인스턴스에는 존재하고, 프로토타입 객체에는 존재하지 않습니다
인스턴스에는 존재하지 않고, 프로토타입 객체에 존재합니다
인스턴스와 프로토타입 객체 모두에 존재합니다
1.hasOwnPrototype()
hasOwnPrototype()은 문자열 형식의 속성 이름을 허용하며 해당 속성이 인스턴스 자체에 존재하는 경우(케이스 2/케이스 4) 그렇지 않으면 false를 반환합니다(케이스 1/케이스 3).
2.in 연산자
in 연산자는 속성이 인스턴스 자체 또는 프로토타입 객체에 있는지 여부에 관계없이 true(케이스 2/케이스 3/케이스 4)를 반환합니다. 그렇지 않으면 false(케이스 1)를 반환합니다.
3. 프로토타입 속성 존재 감지
in 연산자와 hasOwnProperty()를 결합하면 주어진 속성이 프로토타입에 존재하는지 감지하는 함수를 사용자 정의할 수 있습니다.
주어진 속성이 프로토타입에 존재하는 경우 true(케이스 3)를 반환합니다. 그렇지 않으면 false(케이스 1/케이스 2/케이스 4)를 반환합니다.
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다