๋๋ Babel์ ์ฌ์ฉํ์ฌ underscore.min์ ๋ณํํ ์ ์์ต๋๋ค. gulp๋ก ๋ชจ๋ ํ์ผ์ ๋ณํฉํ ๋ค์ babel๋ก ์ฒ๋ฆฌํ์ง๋ง ๋ฐ์ค์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ํ์ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์๋ํด ๋ณผ ์ ์์ต๋๋ค. https://babeljs.io/repl/# ?babili=false&evaluate=true&lineWrap=false&presets=es2015
์ค๋ฅธ์ชฝ ํจ๋ ํ๋จ์ "u is undefined" ์ค๋ฅ๊ฐ ๋ํ๋ฉ๋๋ค.
"์ ์๋์ง ์์ ์์ฑ '_'์(๋ฅผ) ์ฝ์ ์ ์์ต๋๋ค"๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋๋ฐ, ์ด๋ ๋ค๋ฅด์ง๋ง ์ญ์ ์์๋์์ต๋๋ค.
์ด๋ค ๋ฒ์ ์ Underscore๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
์ด๊ฒ์ด ๋ง์คํฐ์์ ์์ ๋ https://github.com/jashkenas/underscore/pull/2153 ๊ณผ ๊ด๋ จ์ด ์๋์ง ์์ฌ๋์ง๋ง ์์ง ํฌํจ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ง ์์์ต๋๋ค.
๋ง์คํฐ์ Underscore ๋ฒ์ (https://github.com/jashkenas/underscore/blob/master/underscore.js)์ผ๋ก ์๋ํด ๋ณด๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํ ์ ์์ต๋๊น?
๋น์ ์ด ๋ฌด์์ ์ฐพ์๋์ง ์๋ ค์ฃผ์ญ์์ค.
์ต์ ๋ฒ์ ์ธ 1.8.3์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ถํํ๋ "require" ๋ฉ์๋๊ฐ ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ์ถ์๋์ง ์์ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ด๋ณด๋ด๊ธฐ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋์ง ์์ต๋๋ค. node.js/io.js, browserify/webpack ๋ฑ๊ณผ ๊ฐ์ commonjs ํ๊ฒฝ์ด ํ์ํฉ๋๋ค.
exports
์ ์ค๋ฅ๋ ์ด๋์ ์์ต๋๊น? Babel ์น์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋์คํ์ผํ ๋ ํด๋น ๋ฉ์์ง๊ฐ ํ์๋์ง๋ง ์ฝ๋๋ ๊ด์ฐฎ์ ๋ณด์
๋๋ค. Underscore๋ exports
๋ณ์๋ฅผ ์ฐธ์กฐํ์ง๋ง ๋
ธ๋ ํ๊ฒฝ์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ exports
๋ง ์ฌ์ฉํ๋ ํ๊ฒฝ์ ๋จผ์ ๊ฐ์งํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ "์ค๋ฅ"๋ Babel์ด ๋์์ด ๋๊ธฐ ์ํด ๋๋ฌด ์ด์ฌํ ๋ ธ๋ ฅํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
๋ ์กฐ์ฌํ ํ ์์ ํจ
๋ฐฉ๊ธ ์์์ฑ์ต๋๋ค... Underscore์ ์ค์ ๋ง์ง๋ง ์ค์ this
๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด๋ฅผ ํธ์ถํ๋ ๊ฒ์
๋๋ค.
}.call(this));
๊ทธ๋ฌ๋ Babel์์ ๋น๋ํ ํ ๋ง์ง๋ง ์ค์ undefined
๋ฅผ ์ ๋ฌํ๋๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
}.call(undefined));
ES6 ๋ชจ๋์์ this
๋ undefined
์ธ ๊ฒ ๊ฐ์ต๋๋ค(์ค์ ECMA ์ฌ์์ ์ฒ๋ฆฌํ์ฌ ๊ทธ๊ฒ์ด ์ฌ์ค์ธ์ง ํ์ธํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์). ๊ทธ๋์ Babel์ด ์๋์ผ๋ก ๊ต์ฒดํฉ๋๋ค.
StackOverflow: babel์ด 'this'๋ฅผ 'undefined'๋ก ๋ณํํ๋ ๊ฒ์ ๋ง๋ ๋ฐฉ๋ฒ
Babel์ ์จ๋ผ์ธ ์ธํฐํ๋ฆฌํฐ ์คํฌ๋ฆฐ์ท:
๋ด ์๊ฐ์ ์ด๊ฒ์ ๋ค์ ์ปค๋ฐ ์ผ๋ก ์์ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ์์ ์ฌํญ์ด ํฌํจ๋ ๊ณต์ ๋ฆด๋ฆฌ์ค๋ ์์ต๋๋ค. ํ์ฌ ๋ฒ์ 1.8.3
์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
"์ ์๋์ง ์์ ์์ฑ '_'์(๋ฅผ) ์ฝ์ ์ ์์ต๋๋ค"๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋๋ฐ, ์ด๋ ๋ค๋ฅด์ง๋ง ์ญ์ ์์๋์์ต๋๋ค.
์ด๋ค ๋ฒ์ ์ Underscore๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
์ด๊ฒ์ด ๋ง์คํฐ์์ ์์ ๋ https://github.com/jashkenas/underscore/pull/2153 ๊ณผ ๊ด๋ จ์ด ์๋์ง ์์ฌ๋์ง๋ง ์์ง ํฌํจ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ง ์์์ต๋๋ค.
๋ง์คํฐ์ Underscore ๋ฒ์ (https://github.com/jashkenas/underscore/blob/master/underscore.js)์ผ๋ก ์๋ํด ๋ณด๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ํ์ธํ ์ ์์ต๋๊น?
๋น์ ์ด ๋ฌด์์ ์ฐพ์๋์ง ์๋ ค์ฃผ์ญ์์ค.