Skip to content

Latest commit

ย 

History

History
44 lines (32 loc) ยท 1.33 KB

README.md

File metadata and controls

44 lines (32 loc) ยท 1.33 KB

this

this ๋ฐ”์ธ๋”ฉ ์šฐ์„ ์ˆœ์œ„

(๋’ค๋กœ ๊ฐˆ ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ)

  • ๊ธฐ๋ณธ ๋ฐ”์ธ๋”ฉ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์—ญ ๊ฐ์ฒด์— ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค.
    • ํ•˜์ง€๋งŒ strict๋ชจ๋“œ์—์„œ๋Š” undefined ์ด๋‹ค.
  • ์•”์‹œ์  ๋ฐ”์ธ๋”ฉ
    • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜์—ฌ ์‹คํ–‰(obj.method())
    • ํ˜ธ์ถœ๋ถ€์˜ ๊ฐํŽ˜ ํ”„๋กœํผํ‹ฐ๋กœ ์ ‘๊ทผํ•˜๋ฉด, ์ด ๊ฐ์ฒด๋ฅผ this์™€ ๋ฐ”์ธ๋”ฉ
  • ๋ช…์‹œ์  ๋ฐ”์ธ๋”ฉ
    • call, apply, bind ์‚ฌ์šฉ
    • bind(null)์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋ง ๊ฐ€๋Šฅ
  • new ๋ฐ”์ธ๋”ฉ
    • new๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์ด this

ํ™”์‚ดํ‘œํ•จ์ˆ˜์˜ this

  • ํ™”์‚ดํ‘œํ•จ์ˆ˜์˜ this๋Š” ์ƒ์œ„ ์Šค์ฝ”ํ”„๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” this์™€ ๊ฐ™์Œ
  • JS๋Š” ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„๋ฅผ ๋”ฐ๋ฅด๋ฏ€๋กœ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•œ ์‹œ์ ์— ์ƒ์œ„ ์Šค์ฝ”ํ”„๊ฐ€ ๊ฒฐ์ •๋จ

use strict

  • ๊ธฐ๋ณธ ๋ฐ”์ธ๋”ฉ์˜ ์ฃผ์ฒด๊ฐ€ ์ „์—ญ๊ฐ์ฒด(window or global)๊ฐ€ ์•„๋‹Œ undefined
  • class๋ฌธ๋ฒ• ๋‚ด๋ถ€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—„๊ฒฉ๋ชจ๋“œ๊ฐ€ ์ ์šฉ๋จ
const Test = class {
  func() {
    console.log(this);
  }
};

const A = new Test().func;
A(); // undefined

[TOP] | [HOME]