1 minute read

16_JavaScript - 객체

데이터와 처리 방법을 담는 그릇으로서의 객체

JS에서의 함수는 값이기도 하다. 그렇기에 배열과 객체에 담을 수 있다.

값으로서의 함수를 배열에 담는 경우는 많지 않다.
대신 객체에 많이 담는다. 담아놓은 함수를 이름으로 꺼낼 수 있기에.

자바 스크립트에서는 함수가 값이라는 특성을 이용하면,
함수를 함수가 사용하고 있는 데이터들이 그룹핑 되어있는 객체에 멤버로서 추가할 수 있다.
이름이 없는 함수로 추가한다.

  //기존의 코드
  var o = {
    v1:'v1',
    v2:'v2'
  }

  function f1(){
    console.log(o.v1);
  }

  function f2(){
    console.log(o.v2);
  }

  f1();
  f2();

  //수정
  var o = {
    v1:'v1',
    v2:'v2',
    f1:function(){
      console.log(o.v1);
    },
    f2:function(){
        console.log(o.v2);
    }
  }

  o.f1();
  o.f2();

o라고 하는 하나의 객체 안에 서로 연관된 값들과 이를 처리하는 함수들이 그룹핑 되어 있다.

  console.log(o.v1);
  //매번 객체명을 명시하면 함수를 담고있는 객체명이 변경됐을 때 문제가 생긴다.

함수가 객체 안에서 사용될 때 자신이 속해있는 객체를 참조할 수 있는 어떤 약속이 존재한다.
this 라는 약속된 키워드를 사용.

만든 객체가 어떠한 이름에 변수에 담겨있든, 언제나 함수 내에서 this 라는 약속된 값을 통해서
함수가 속해있는 객체를 참조할 수 있다.

  console.log(this.v1);

함수는 값이다. 객체는 값을 저장한다. 이런 특성을 이용해서 서로 연관된 데이터와 연관된 처리법을
담고 있는 함수를 그룹핑 하는 것을 통해서 코드의 복잡성을 낮출 수 있다.

객체 지향을 바라보는 이미지 중의 하나.

객체라는 건 결국 코드가 복잡해짐에 따라 코드를 정리정돈해서 코드의 복잡성을 낮추는
기본적인 기능부터 출발한다.