프로그래밍 언어/javascript

자바스크립트 객체 안에 키 있는지 확인

벌게진눈 2018. 9. 27. 19:20
반응형

객체안에 키가 있는지 확인하기 위해서는 크게 2가지 방법이 있다. 


hasOwnProperty 와 in 을 사용하는 방법이다. 


이 둘의 차이점은 prototype의 내용까지 참조하는지 않하는지에 대한 차이이다.


function Person(){
this.name = 'K';
}
Person.prototype.eyes = 2;

var k = new Person();
console.log(k.hasOwnProperty('name')); // true
console.log('name' in k); // true

console.log(k.hasOwnProperty('eyes')); // false
console.log('eyes' in k); // true

console.log(('name' in k) && !k.hasOwnProperty('name'));
//false
console.log(('eyes' in k) && !k.hasOwnProperty('eyes'));
//true


in의 경우 prototype의 내용까지 모두 참조하여 true를 반환하고

hasOwnProperty는 prototype의 내용을 제외하고 참조하여 true를 반환한다. 

반응형