For in 반복문 / hasOwnProperty 메소드

JY·2021년 6월 1일
0

MDN - hasOwnProperty 매소드

MDN - in 연산자

1. for (prop in obj) { }

for (var prop in obj) {
  console.log(prop);
}
  • 객체가 가지고 있는 프로퍼티뿐만 아니라 상속받은 프로퍼티까지 순회한다.

  • 예제

var parent = Object.create({ parent: 123 });

parent.rabbit = "rabbit";

var child = Object.create(parent);

child.cat = "cat";

for (var prop in child) {
  console.log(prop);
};

=> "rabbit", "cat" 출력

상속받은 프로퍼티말고 직접 가진 프로퍼티만 출력하고 싶을 경우 아래와 같이 코드 수정

for (var prop in child) {
  if (obj.hasOwnProperty(prop)) {
    console.log(prop);
  }
}



2. obj.hasOwnProperty('prop')

object.hasOwnProperty(prop)

  • 객체가 특정 프로퍼티를 가지고 있는지 확인

  • 객체가 상속받은 프로퍼티말고 직접 가진 프러퍼티만 포함한다.

  • 불리언 값으로 반환(ture/false)

  • 예제

const newObj = {};
newObj.dog = "coco";

console.log(newObj.hasOwnProperty('dog'));
// true

console.log(newObj.hasOwnProperty('cat'));
// false

console.log(newObj.hasOwnProperty('hasOwnProperty'));
// false
// 객체가 가진 매소드는 맞지만, 
// newObj가 직접적으로 가진 매소드는 아님!!

0개의 댓글