hasOwnProperty

agnusdei·2023년 7월 11일
0

hasOwnProperty는 JavaScript의 내장 메서드로, 객체가 특정 속성을 직접 소유하고 있는지 확인하는 기능을 제공합니다. 이 메서드는 상속받은 속성이나 프로토타입 체인을 통해 상속받은 속성은 확인하지 않고, 오직 객체 자체에 직접 정의된 속성만을 확인합니다.

hasOwnProperty 메서드는 다음과 같은 구문으로 사용됩니다:

object.hasOwnProperty(property)

여기서 object는 확인하고자 하는 속성을 가진 객체이고, property는 확인하고자 하는 속성의 이름(문자열)입니다.

hasOwnProperty 메서드의 동작은 다음과 같습니다:

  1. object 객체가 property 이름의 속성을 직접 소유하고 있는지 확인합니다.
  2. object 객체가 property 이름의 속성을 직접 소유하고 있다면, hasOwnPropertytrue를 반환합니다.
  3. object 객체가 property 이름의 속성을 직접 소유하고 있지 않거나 objectnull 또는 undefined인 경우, hasOwnPropertyfalse를 반환합니다.

다음은 hasOwnProperty 메서드의 예시입니다:

const person = {
  name: 'John',
  age: 25,
};

console.log(person.hasOwnProperty('name')); // true
console.log(person.hasOwnProperty('age')); // true
console.log(person.hasOwnProperty('gender')); // false
console.log(person.hasOwnProperty('toString')); // false (상속받은 메서드)
console.log(person.hasOwnProperty('hasOwnProperty')); // false (상속받은 메서드)

const emptyObject = {};

console.log(emptyObject.hasOwnProperty('property')); // false

위의 예시에서 person 객체는 nameage라는 속성을 직접 소유하고 있기 때문에 hasOwnProperty는 해당 속성에 대해 true를 반환합니다. 그러나 gender 속성은 person 객체에 직접 정의되지 않았기 때문에 false를 반환합니다. 또한, toStringhasOwnPropertyObject 객체를 상속받은 속성이므로 false를 반환합니다.

빈 객체인 emptyObject의 경우에는 어떤 속성도 직접 소유하고 있지 않기 때문에 hasOwnProperty는 항상 false를 반환합니다.

hasOwnProperty 메서드는 객체의 속성을 검사할 때 유용하며, 프로퍼티가 있는지 여부를 확인하여 안전하게 작업할 수 있도록 도와줍니다.

0개의 댓글