๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป DEV/Javascript & NodeJS20

[Javascript] ๊ฐ์ฒด์˜ Deep Copy (๊นŠ์€ ๋ณต์‚ฌ) โœจ Object ๋ž€? Javascript์˜ Reference type (๊ฐ์ฒด/์ฐธ์กฐํ˜• ํƒ€์ž…) ์— ์†ํ•˜๋Š” Data type ์ด๋‹ค. ํ•œ๊ตญ์–ด๋กœ๋Š” '๊ฐ์ฒด'๋กœ ๋ถˆ๋ฆฌ์šฐ๋ฉฐ, key ์™€ value ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” Heap ๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋˜๋ฉฐ, ๋ณ€์ˆ˜์—๋Š” ํ•ด๋‹น ๊ณต๊ฐ„์„ ์ฐธ์กฐํ•˜๋Š” ์ฃผ์†Œ๊ฐ’์ด ํ• ๋‹น๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ๊ฐ์ฒด ๋ณ€์ˆ˜ ์ž์ฒด๋ฅผ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ๊ฐ์ฒด ์ž์ฒด์˜ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉฐ, ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ์ฃผ์†Œ๋งŒ ๋ณต์‚ฌ๋œ๋‹ค. // ์ฐธ์กฐ ํ• ๋‹น: ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋จ let obj = {0:'zero', 1:'one'} let obj1 = obj // obj์˜ ๊ฐ์ฒด ์ฃผ์†Œ๊ฐ€ ๋ณต์‚ฌ๋จ obj1.1 = 'changed one' // obj1 ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด obj // {0:'zero', 1:.. 2021. 5. 9.
[Javascript] ํ•จ์ˆ˜ : Currying (์ปค๋ง) โœจ Curry ํ•จ์ˆ˜๋ž€? ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜(return)ํ•˜๋Š” ๊ณ ์ฐจํ•จ์ˆ˜์˜ ์ผ์ข…์ด๋‹ค. ์ด๋•Œ, ๋ฐ˜ํ™˜๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ํด๋กœ์ €(Closure)๋ผ๊ณ  ์นญํ•˜๊ธฐ๋„ ํ•œ๋‹ค. function curry(func) { // curry() ๋Š” ์ปค๋ฆฌํ•จ์ˆ˜์ด๋‹ค return (function closure(something){ // callback() ๋Š” ํด๋กœ์ €์ด๋‹ค return (console.log(something)) }) } โœจ Currying(์ปค๋ง)์ด๋ž€? ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹จ์ผ ํ˜ธ์ถœ์— ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ, ๊ฐ๊ฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ฐœ๋ณ„๋กœ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์ปค๋ง(Currying)์ด๋ผ๊ณ  ํ•œ๋‹ค. function sum(a, b) { // ์ผ๋ฐ˜ ํ•จ์ˆ˜ sum() ์„ ์ปค๋งํ•˜์—ฌ ๋ณ€ํ™˜ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. return a + b; } function c.. 2021. 5. 9.