객체지향_4)Object 객체

양갱장군·2020년 8월 29일
0

Object 객체란?


Object 객체는 객체의 가장 기본적인 형태를 가지고 있는 객체로, 아무것도 상속받지 않는 순수한 객체이다.
자바스크립트의 모든 객체는 Object 객체를 상속 받기 때문에, 모든 객체는 Object 객체의 프로퍼티를 가지고 있다.

Object API 사용법

Object 객체를 확장하면 모든 객체가 접근할 수 있는 API를 만들 수 있다.

Object.prototype.contain = function(neddle) {
	for (var name in this) {
    	if (this[name] === neddle {
        	return true;
            }
        }
 	return false;
 }
var o = {'name':'egoing', 'city':'seoul'}
console.log(o.contain('egoing'));
var a = ['egoing','leezche','grapittie'];
console.log(a.contain('leezche'));

그러나 위와 같은 방식의 Object확장은 문제가 되는데, 모든 객체에 영향을 주기 때문이다. 확장 후 아래 코드를 실행해보면 o 객체에 확장한 프로퍼티인 contain이 포함되어 있음을 알 수 있다.

for(var name in o){
    console.log(name);  
} //결과: name, contain

이 문제를 피하기 위해서는 프로퍼티의 해당 객체의 '직접적인' 소속인지를 체크해볼 수 있는 hasOwnProperty를 사용하면 된다.

hasOwnProperty는 인자로 전달된 속성의 이름이 객체의 속성인지 여부를 판단한다. 만약 prototype으로 상속 받은 객체라면 false가 된다.

for(var name in o){
    if(o.hasOwnProperty(name))
        console.log(name);  
}

0개의 댓글