object

Object

Object 객체는 객체의 가장 기본적인 형태를 가지고 있는 객체이다. 다시 말해서 아무것도 상속받지 않는 순수한 객체다.자바스크립트에서는 값을 저장하는 기본적인 단위로 Object를 사용한다.

Object -> 모든 객체의 부모

Object 👉 모든객체가 가지고 있어야하는 공통된 기능이 있다 object의 prototype 객체를 수정하는것을 통해서 그러한 기능을 만들 수 있다.

object 더 자세히 알아보기(어떠한 메소드가 있는지 확인 해보기 ) -> https://developer.mozilla.org/ko/

* object prototype 이크마3 이여야 모든 브로우저에서 지원이 된다. object 내장객체를 사용할때는 브라우저 지원이 어디까지 되는지 확인해봐야한다. *

var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};

object 확장

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')); //true
// 만약에 graphottie 라고 하면 false가 나올것이다 존재하지 않기때문에 
var a = ['egoing','leezche','grapittie'];
console.log(a.contain('leezche')); //true

object 확장위험

그런데 Object 객체는 확장하지 않는 것이 바람직하다. 왜냐하면 모든 객체에 영향을 주기 때문이다.

확장한 프로퍼티인 contain이 포함되어 있다. 객체가 기본적으로 가지고 있을 것으로 예상하고 있는 객체 외에 다른 객체를 가지고 있는 것은 개발자들에게 혼란을 준다. 이 문제를 회피하기 위해서는 프로퍼티의 해당 객체의 소속인지를 체크해볼 수 있는 hasOwnProperty를 사용하면 된다.

for(var name in o){
    if(o.hasOwnProperty(name))
        console.log(name); //name city 
        //hasOwnProperty -> 자신의 프로포티를 가지고 있는가를 확인해줌
}

Last updated