객체(Object)

📄 객체란 무엇인가?

객체는 이름과 값으로 구성된 프로퍼티의 정렬되지 않은 집합체입니다.

객체를 생성할 때는 함수나 클래스를 이용할 수 있습니다.

쉽게 말해 함수나 클래스를 큰 틀로 생각하고 하나하나 찍어내는 것을 각각 객체라고 생각하면 됩니다.

이 객체는 인스턴스라고 부르기도 합니다.

new라는 키워드를 통해 객체를 생성합니다.

function A() {}

const a = new A(); // new를 통해서 함수 A의 객체가 만들어져 변수 a에 할당된다.
console.log(a, typeof a);
console.log(A());

📄 객체에 속성(프로퍼티)추가하기

함수에서 프로퍼티를 만들어 객체에 할당할 수 있습니다.

프로퍼티를 설정하면 각각의 성질을 가지는 속성을 만들게 됩니다.

function A(name) {
  this.name = name;
}

const a = new A("Mark");
console.log(a);

함수를 속성으로 넣기

함수를 프로퍼티로 넣는 것또한 가능합니다.

function B() {
  this.hello = function () {
    console.log("hello");
  };
}

new B().hello();

함수B의 프로퍼티 hello에 ‘hello’를 출력하는 함수를 설정함.

📄 객체 리터럴

객체 리터럴은 중괄호 안에 프로퍼티를 정의하여 객체를 생성하는 방식입니다.

프로퍼티는 쉼표(,)로 구분합니다.

const b = {
  name: "Mark", // name이라는 프로퍼티에 'Mark'라는 값 할당
};

console.log(b, typeof b);

결과

{
  name: "Mark";
}
object;

프로퍼티에 함수도 할당할 수 있습니다.

const c = {
  name: "Mark",
  hello1() {
    console.log("hello1", this.name);
  },
  hello2: function () {
    console.log("hello2", this.name);
  },
  hello3: () => {
    console.log("hello3", this);
  },
};

c.hello1();
c.hello2();
c.hello3();

결과

hello1 Mark
hello2 Mark
hello3 {}

Leave a comment