객체 지향 - Object
포스트
취소

객체 지향 - Object

Object 객체의 특징

  • 객체의 가장 기본적인 형태를 가지고 있다.
    • 아무것도 상속 받지 않은 순수한 객체
  • JavaScript에서 값을 저장하는 기본적인 단위
  • JavaScript의 모든 객체는 Object 객체를 상속받는다.
    • 모든 객체는 Object 객체의 프로퍼티를 가지고 있다.
  • Object 객체를 확장하면 모든 객체가 접근할 수 있는 API를 만들 수 있다.

Object API

  • JavaScript API 홈페이지 가는 법
    1. https://developer.mozilla.org/en-US/docs/Web으로 이동한다.
    2. Web technology references이나 Temporary에서 JavaScript 항목을 찾아서 클릭한다.
    3. References의 Built-in objects에서 Object 항목을 찾아서 클릭한다.
  • Object API 사용법
    • 사용할 값 1 => var arr = [“a”, “b”, “c”];
    • 사용할 값 2 => var o = {name : ‘Tom’, ‘hobby’:’Listen Music’};
  • Object.xxx(!!!) 사용법 : Object를 선언한 뒤에 함수명을 명시해서 사용한다.
    • 예시 1) console.log(Object.keys(arr));
      • 출력 : [“0”, “1”, “2”]
      • 이유 : 배열이기 때문에 키 값으로 index 번호를 리턴한다.
    • 예시 2) console.log(Object.keys(o));
      • 출력 : [“name”, “hobby”]
      • 이유 : 객체이기 때문에 키 값을 리턴한다.
  • Object.prototype.yyy(???) 사용법 : 변수명 뒤에 함수명을 명시해서 사용한다.
    • 예시 1) console.log(arr.toString());
      • 출력 : a,b,c
    • 예시 2) console.log(o.toString());
      • 출력 : [object Object]

Object 객체의 확장

Object.prototype.searchElement = function(searchObject) {
    for(var index in this){
        if(this[index] === searchObject){
            return true;
        }
    }
    return false;
}
var student = {name : 'Tom', hobby:'Listen Music'};
console.log(student.searchElement('age'));    //출력 : false
var number = [1,2,3];
console.log(number.searchElement(1));         //출력 : true

Object 객체의 확장의 위험성

만약 위에서럼 Object 객체에 대해서 prototype으로 재정의한 함수는
잘못하면 코드가 유출될수 있으니 객체의 내용물을 출력할때는
다음과 같이 작성하는 것이 좋다.

for(var item in 객체명){
    if(item.hasOwnProperty(item)){
        console.log(item);
    }
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.