[ JavaScript ] 자바스크립트 기본 문법 | Object 란?

2021. 2. 4. 11:20·Archive/Develop
728x90
반응형

이미지 출처 :   https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

 

자바스크립트 기본 문법  ::  Object란?

 

 

 

Object 객체는 객체의 가장 기본적인 형태를 가지고 있는 객체입니다.

 

다시 말해서 아무것도 상속받지 않는 순수한 객체입니다.

 

 

자바스크립트에서는 값을 저장하는 기본적인 단위로 Object를 사용하고 있습니다.

 

 

동시에 자바스크립트의 모든 객체는 Object 객체를 상속 받는데,

그런 이유로 모든 객체는 Object 객체의 프로퍼티를 가지고 있습니다.

 

 

 

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

 

 

 

 

그런데 이런 확장, 바람직한 것일까요?

 

 

 

위 예제를 실행시킨 다음에, 아래 예제를 실행시켜 보도록 하겠습니다.

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

확장한 프로퍼티인 contain이 포함되어 있습니다.

 

 

객체가 기본적으로 가지고 있을 것으로 예상하고 있는 객체 외에,

다른 객체를 가지고 있는 것은 개발자들에게 혼란을 줍니다.

 

 

이 문제를 회피하기 위해서는

 

 

 

프로퍼티의 해당 객체의 소속인지를 체크해볼 수 있는 hasOwnProperty를 사용하면 됩니다.

 

 

 

예제로 보는 것이 훨씬 더 쉽기 때문에, 예제로 보도록 하겠습니다.

 

 

 

 

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

 

 

 

 

 

 

 

위와 같이 contain 이라는 프로퍼티가 빠지고,

자신이 설정한 프로퍼티만 출력되는 것을 확인할 수 있습니다.

 

 

 

hasOwnProperty는 인자로 전달된 속성의 이름이 객체의 속성인지 여부를 판단합니다.

 

만약 prototype으로 상속 받은 객체라면 false가 됩니다. 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | 복제와 참조 | 참조데이터란 |  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 원시 데이터 타입 | 래퍼객체(wrapper object)  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 표준 내장 객체란?  (0) 2021.02.04
[ Javascript ] 자바스크립트 기본 문법 | prototype & prototype chain  (0) 2021.02.04
[ JavaScript ] 자바스크립트 기본 문법 | 상속(inheritance)이란 무엇인가?  (0) 2021.02.04
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | 복제와 참조 | 참조데이터란 |
  • [ JavaScript ] 자바스크립트 기본 문법 | 원시 데이터 타입 | 래퍼객체(wrapper object)
  • [ JavaScript ] 자바스크립트 기본 문법 | 표준 내장 객체란?
  • [ Javascript ] 자바스크립트 기본 문법 | prototype & prototype chain
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    비박스
    파이썬 기초 문제
    Codeup
    C++
    코드업
    자바스크립트
    파이썬 알고리즘
    코드업 파이썬 기초 100제
    오라클
    코드업 기초
    백준 파이썬
    Oracle
    javascript
    장고
    Python
    보안뉴스
    파이썬 기초
    Django
    oracle db
    자바스크립트 객체
    카카오 100일 프로젝트
    Git
    백준
    백준 풀이
    자바스크립트 API
    파이썬
    파이썬 문제
    백준 문제풀이
    docker
    파이썬 백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 기본 문법 | Object 란?
상단으로

티스토리툴바