생성자 함수를 이해하고 나니 조금 무슨 말인지 이해가 가서 다시 정리!!
객체 하나가 있다고 해보자.
예시는 간단한 객체이지만 데이터를 정제하는 실상황에서는 아주 복잡한 객체일 가능성이 높다.
그렇다면 이 객체에서 내가 찾고 싶은 속성이 있는지 존재하는지 확인하는 방법은 아래 두가지 함수를 활용할 수 있다.
const person = {
name: 'jeje',
age: 26
}
1. hasOwnProperty()
[객체명].hasOwnProperty('[찾을 속성명]')
2. in
'[속성명]' in [객체명]
MDN 왈, in 연산과는 다르게 이 메소드는 객체의 프로토타입 체인을 확인하지는 않는다.
내가 이해한 것으로는 hasOwnProperty 은 in 과 다르게 toString() 와 같이 객체로부터 상속받은 속성을 체크할 수 없다.
객체 자체의 속성은 찾을 수 있는데 그 객체에서 상속받은 객체에서는 판단할 수 없어서 false 를 반환하는 것이라고 이해했다.
생성자 함수는 다음과 같고 dog1 이라는 객체를 생성했다고 하자.
function Dog(name){
this.name = name
}
const dog1 = new Dog('Podo')
dog1은 이렇게 생긴 객체이고
dog1 객체에서 name 이라는 속성이 있는지 찾으면 true!
toString() 과 같이 객체로부터 상속받은 속성의 경우 그 속성은 찾을 수 없다.
*toString() 에 관한 자세한 내용은 아래 참고하기!!
2022.05.08 - [JavaScript] - 22.05.08 객체와 toString()
참고자료링크
1. toString MDN
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
2. 객체에서 속성 찾기 방법 제시
https://hianna.tistory.com/420
'JavaScript' 카테고리의 다른 글
22.05.09 map 의 결과가 undefined 일 경우 skip (0) | 2022.05.10 |
---|---|
22.05.09 배열 평탄화 flatMap (0) | 2022.05.09 |
22.05.08 객체와 toString() (0) | 2022.05.08 |
22.05.08 생성자와 return 문 (0) | 2022.05.08 |
22.05.08 생성자 함수와 new 연산자 (0) | 2022.05.08 |