Skip to content

Latest commit

ย 

History

History
38 lines (27 loc) ยท 1.1 KB

File metadata and controls

38 lines (27 loc) ยท 1.1 KB

๋ฉ”์„œ๋“œ. method


๋ชฉ์ฐจ


์˜ˆ์ œ

[๋ฉ”์†Œ๋“œ์™€ ์ด ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” this ์ฐพ๊ธฐ - ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์—์„œ 'this' ์‚ฌ์šฉ] ๋ฐ”๋กœ๊ฐ€๊ธฐ

  1. ํ•จ์ˆ˜ makeUser๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ์ฒด์˜ ref์— ์ ‘๊ทผํ•˜๋ฉด ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๊ทธ ์ด์œ ๋Š” ๋ญ˜๊นŒ์š”?

function makeUser() {
  return {
    name: "John",
    ref: this
  };
};

let user = makeUser();

alert( user.ref.name ); // ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?
  • ๋‚˜์˜ ๋Œ€๋‹ต: this๋Š” window๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ ์—๋Ÿฌ
  • ๋‹ต์ง€: this ๊ฐ’์„ ์„ค์ •์‹œ ๊ฐ์ฒด ์ •์˜๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (ํ˜ธ์ถœ ์‹œ์ ์— ๊ฒฐ์ •)
    • ์œ„ ์ฝ”๋“œ์—์„œ makeUser() ๋‚ด this๋Š” ํ•จ์ˆ˜๋กœ์จ ํ˜ธ์ถœ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— undefined๊ฐ€ ๋œ๋‹ค.
    • this ๊ฐ’์€ ์ „์ฒด ํ•จ์ˆ˜๊ฐ€ ๋˜๋ฒ„๋ฆฐ๋‹ค.

[์ฒด์ด๋‹]๋ฐ”๋กœ๊ฐ€๊ธฐ 2.