본문 바로가기

프로그래밍/JavaScript

19.11.22) Javascript - 객체

목차

  • * 객체
    • * 객체 만드는 법
    • * this 키워드

객체

객체다. 어려운 자식이다. 이해가 쉽진 않지만 적어본다. 이런 생각이 든다. 객체는 일상 속에서 너무 녹아져 있어서 오히려 이해가 어려운 것이 아닐까 하는 생각이다. 등잔 밑이 어둡다는 말처럼. 너무 가까우면 오히려 잘 안 보인다. 사설은 그만하고 객체를 이야기하자.

객체는 하나의 물질이다. 생명체는 나름의 속성이 있고 하는 일이 있다.
ex)

  • * 사람은 각자 나름의 키와 몸무게가 있고, 밥 먹고, 잠자는 일이 있다.
  • * 자전거은 각자 나름의 크기가 있고, 멈추거나 움직이는 일이 있다.
  • * 도마뱀은 각자 나름의 색깔과 크기가 있고, 잠자거나 사냥하는 일이 있다.

(설명이 적절한지 모르겠다.) 여하튼 객체는 하나의 물질이다. 다만 속성과 기능을 가진다. 그럼 컴퓨터 언어에서 객체라는 개념을 쓰는 이유는 프로그램을 마치 살아있는 물질로 보자는 것이다. 이렇게 하면 사용자가 이해가 프로그램 이해가 쉽다. 왜냐면 우리는 객체에 둘러싸여 살아가기 때문이다.

객체 만드는 법

    var human = {}; //객체 생성
    human.height = 189; //객체의 속성(키) 생성
    human.eat = function () { //객체의 기능(식사하다) 생성
        console.log("음식을 먹는다");
    };

객체의 기능을 다른 말로 매소드라 한다. 함수와 차이점은 메서드는 객체만 작동하는 함수이다. 한마디로 함수라는 큰 집합에 메서드가 포함된다.

this 키워드

this는 정말 재밌는 개념이다. 이게 객체가 자기 자신을 지칭할 때 하는 말이다. 이게 왜 중요하냐면 우리가 이미 이렇게 쓴다. 나를 부를 때 내 이름을 붙이지 않는다. 예를 보자

ex) 27살인 노석이가 아침식사 한 것을 친구한테 이야기한다. "오늘 노석이는 아침 먹었어요"라고 말이다. 그러면 친구는 이상한 눈길을 줄 것이다.

이런 상황에서 보통 우리는 "오늘 아침 먹었다."라고 말한다. 이름을 말하지 않고 라는 말을 쓴다. 이처럼 this는 객체를 부를 때 객체 이름을 쓰지 않고 this라 쓰는 것이다. 코드를 보자.

    var human = {}; //객체 생성
    human.name = Jack;
    human.height = 189; //객체의 속성(키) 생성
    human.eat = function () { //객체의 기능(식사하다) 생성
        console.log(this.name + "이 음식을 먹는다");
    };

eat() 메소드를 보면 human.name이 아니라 this.name으로 썼다.