ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript/ES6] let ๊ณผ this ํ‚ค์›Œ๋“œ
    javascript 2019. 4. 29. 22:51

    ์•ˆ๋…•ํ•˜์„ธ์š”, Jerry์ž…๋‹ˆ๋‹ค.

     

    ECMAScript 6(์ €์ž: ๊น€์˜๋ณด)๋ฅผ ๊ณ„์† ์ฝ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋ฒˆ ES6 ํฌ์ŠคํŒ…์—์„  let๊ณผ var์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด์—ˆ๋Š”๋ฐ์š”. ํ˜น์‹œ let๊ณผ var์˜ ์ฐจ์ด์  ํฌ์ŠคํŒ…์„ ๋ชป ๋ณด์‹  ๋ถ„๋“ค ์ค‘์— ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ โ–ผ์—ฌ๊ธฐ ์•„๋ž˜ ๋งํฌ๋กœ ์ ‘์†ํ•ด๋ณด์„ธ์š” :)

    ·let ํ‚ค์›Œ๋“œ์™€ var ํ‚ค์›Œ๋“œ์˜ ์ฐจ์ด์  โ˜ž https://bejerry.tistory.com/7)

     

    ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„  this ํ‚ค์›Œ๋“œ๋ฅผ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ๋ณธ ํฌ์ŠคํŒ…์€ ECMAScript 6(์ €์ž: ๊น€์˜๋ณด)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…์„ ๋“œ๋ฆฌ๋ฉฐ, ์˜ˆ์ œ ์†Œ์Šค๋„ ๋น„์Šทํ•œ ์  ์•ˆ๋‚ด๋“œ๋ฆฌ๊ณ  ํฌ์ŠคํŒ… ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ๋ธ”๋ก ์Šค์ฝ”ํ”„์—์„œ this ํ‚ค์›Œ๋“œ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ•œ ๋ฒˆ ๋ณด์‹ค๊นŒ์š”?

     

    let - this
    
    var music = '์Œ์•…';
    console.log(this.music); // ์Œ์•…
    
    let sports = '์ถ•๊ตฌ';
    console.log(this.sports); // undefined
    

     

    ใ€์‹คํ–‰ ๊ฒฐ๊ณผใ€‘ ์Œ์•… / undefined

     

    ํ˜„์žฌ ์Šค์ฝ”ํ”„๋Š” ๊ธ€๋กœ๋ฒŒ ์˜ค๋ธŒ์ ํŠธ์ด๊ณ  this๊ฐ€ ๊ธ€๋กœ๋ฒŒ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ window ์˜ค๋ธŒ์ ํŠธ๋Š” ์•„๋‹ˆ์ง€๋งŒ, window ์˜ค๋ธŒ์ ํŠธ๋กœ ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜์— ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

     

    let ํ‚ค์›Œ๋“œ๋กœ sports ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  '์ถ•๊ตฌ'๋ผ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  this.sports๋กœ ์ถœ๋ ฅ์„ ํ•˜๋ฉด undefined๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์™œ var ํ‚ค์›Œ๋“œ์™€ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ์ด ๋˜๋Š”๊ฑธ๊นŒ์š”? ์Šค์ฝ”ํ”„์˜ ์ฐจ์ด์ ์ด ์žˆ๋‹ค๊ณ ๋Š” ํ•˜๋‚˜, ํ˜„์žฌ ์˜ˆ์ œ์—” ์Šค์ฝ”ํ”„๋กœ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฑด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ๋˜๋Š” ์ด์œ ๋Š” ๋ฐ”๋กœ ์ด์–ด์„œ ์ ๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ๊ทธ ์ด์œ ๋Š” this๊ฐ€ window ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ฐ window ์˜ค๋ธŒ์ ํŠธ์—์„  let ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ์ด var ๋ณ€์ˆ˜์™€ let ๋ณ€์ˆ˜์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

     

    ์‚ฌ์‹ค ์ฑ…์— ์ด๋ ‡๊ฒŒ ์ ํ˜€์žˆ์—ˆ์ง€๋งŒ ์ €๋Š” ์ดํ•ด๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฃผ์œ„์— ๋ฌผ์–ด๋ดค๋Š”๋ฐ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค€ ์นœ๊ตฌ๊ฐ€ ์žˆ์–ด์„œ ๊ทธ ๋‹ต๋ณ€์„ ๊ณต์œ ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

     

    var ํ‚ค์›Œ๋“œ์˜ ๊ฒฝ์šฐ scope๊ฐ€ window๊นŒ์ง€ ๊ฐ€๋Š”๊ฑฐ๋ผ๊ณ  ํ•˜๋ฉด, let์˜ scope๋Š” window์— ๋ฏธ์น˜์ง€ ๋ชปํ•œ๋‹ค.

     

    ์ด ๋ง์ด ์ •๋‹ต์€ ์•„๋‹ˆ๊ฒ ๋‹ค๋งŒ, ์ดํ•ดํ•˜๋Š”๋ฐ์—๋Š” ๋ถ„๋ช… ๋„์›€์ด ๋˜์–ด์„œ ๊ณต์œ ํ•œ ๊ฒƒ์ด๋‹ˆ ํ˜น์‹œ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋Š” ๋ถ„์€ ๋Œ“๊ธ€๋กœ ์ž์„ธํ•œ ์„ค๋ช… ๋ถ€ํƒ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    +์ถ”๊ฐ€

    this๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ window ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉ ๋˜๊ณ , var ํ‚ค์›Œ๋“œ๋Š” window ๊ฐ์ฒด์— ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ˜๋ฉด,

    let ํ‚ค์›Œ๋“œ๋Š” window ๊ฐ์ฒด์— ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

     

     

    ๋Œ“๊ธ€

Posted by Bejerry.