Language/JS(Node.js)

[JavaScript] 객체란 무엇인가?

Joonfluence 2020. 11. 12.

객체란 무엇인가?

  • 자바스크립트에서 객체는 여러모로 쓸모가 많다. JSON 파일에서 전송되는 데이터도 객체이고, DOM 조작에 활용되는 document와 BOM 조작과 관련된 전역객체인 Windows 역시 객체이다. 또한 객체지향 프로그래밍으로 소프트웨어를 설계할 때에도 활용되는 것이 객체이다.

객체의 의의

  • 객체란 현실의 사물을 프로그래밍적으로 표현하기 위하여, 활용되는 수단이다. 예를 들어, 나(이준호)라는 사람을 객체로 표현한다면 다음과 같이 표현할 수 있을 것이다. juno라는 객체를 만들고 그 안에 각각 firstname(변수), lastname(변수), body(객체), hobby(배열), eat(함수), boxing(함수), cooking(함수)를 넣었다. 즉, 나라는 객체 안에 사람이 할 수 있는 일들을 함수의 형태로 나타내고 나를 나타내는 정보들을 변수로 넣었다. 이들은 모두 juno라는 공통 분모로 묶인다. 이처럼 객체란 서로 연관이 있는 변수와 메소드들을 그루핑한 것이라고 볼 수 있다. 이처럼 객체는 변수(반복적으로 쓰이는 값에 이름을 붙여주고, 이를 활용하여 반복적으로 사용하기 쉽게 이름을 지정해준 것)와 함수(반복적으로 발생하는 로직에 이름을 붙여주고, 이를 활용하여 반복적으로 사용하는 것)를 정리하는 도구로 활용된다.
let juno = {
    firstname : 'joonho',
    lastname : 'lee',
    body : {
       height : 174,
       weight : 63 
    },
    hobby : ['boxing', 'cooking', 'eating']
    , 
    eat(food){
        return food+"을 먹는다";
    },
    boxing(target){
        return target+"을 때린다";
    },
    cooking(ingredient){
        return ingredient+"을 손질한다";
   }
}

객체 만드는 법

  • 객체를 만드는 방법은 간단하다. 위에서 처럼 { }이라는 객체 리터럴 안에 담고자 하는 정보들을 넣어서 표현해주면 된다. 혹은 생성자 함수를 만들어줌으로써 여러 종류의 객체들을 쉽게 만들 수 있도록 돕는다. 이는 붕어빵을 굽는 붕어빵의 틀과 비슷한데, 틀이 있기 때문에 붕어빵의 모양은 일정하다. 다만, 붕어빵 안에 넣는 속재료를 다르게 넣음으로써 다양한 붕어빵을 만들어 낼 수 있는 것처럼 마찬가지다. 생성자 함수 역시, 공통으로 가질 수 있는 속성(Property)를 지정해줄 수 있다.
  • 이 때 주의할 것은 생성자 함수명의 앞글자를 대문자로 적어주어야 하며(이는 정해진 약속이다), 생성할 때 new라는 연산자를 추가해줘야 한다는 점이다. 그래야만 정상 작동한다.
function Person(firstname, lastname, body, hobby, food){
    this.firstname = firstname,
    this.lastname = lastname,
    this.body = { height : body.height,
                  weight : body.weight                
    },
    this.hobby = hobby,
    this.eat = function() {
        return console.log(food+"를 먹는다")
    }
}

let juno = new Person('joonho', 'lee', {height : 174, weight: 63}, ['boxing', 'cooking', 'eating'], 'hamburger');
let paul = new Person('paul', 'kim', {height : 168, weight: 65}, ['playing basketball', 'computer gaming'], 'pizza');

객체의 속성

  • 객체의 속성이란 앞에서 보았던 객체의 구성요소이며, firstname : 'joonho'와 같은 요소를 가리킨다. 또한 이들을 각각 키(key)와 값(value)로 구성된다. 여기서 firstname은 key, 즉 프로퍼티를 식별하기 위한 식별자이며 'joonho'는 키에 대응되는 데이터에 해당한다.

참고사이트

(JavaScript) 객체(Object)와 배열(Array)

(JavaScript) 객체 지향 프로그래밍(생성자와 프로토타입)

반응형

댓글