๊ฐ์ฒด(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