
JavaScript: with, debugger
์ฐธ๊ณ ํ ๊ธ
with
์ฃผ๋ก ๊น์ด ์ค์ฒฉ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ๊ฐ์ฒด์ ํ๋กํผํฐ ์ ๊ทผ ํํ์์ ์๋ตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ๋ค๋ง ์ฌ์ฉ์ด ๊ถ์ฅ๋์ง ์๋๋ค. David Flanagan์ ์ต์ ํ๊ฐ ํ๋ค๊ณ ์ฝ๋ ์คํ ์๋๊ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ผ ํ๋ค. MDN์ โํผ๋์ค๋ฌ์ด ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ๊ณ ํธํ์ฑ์ ๋ฌธ์ ๊ฐ ์์ด์ ๋น๊ถ์ฅโํ๋ค. ๊ฒ๋ค๊ฐ ์๊ฒฉ ๋ชจ๋(strict mode)์์ ์ฌ์ฉ์กฐ์ฐจ ๋ถ๊ฐํ๋ ์ค์ ์ธ ์ผ์ ์์ด ๋ณด์ธ๋ค.
var obj = {};
obj.inner = {};
obj.inner.number = 1234;
with (obj.inner) {
console.debug(number); // 1234
}
debugger
๋๋ฒ๊ฑฐ์ ๋ธ๋ ์ดํฌ ํฌ์ธํธ ์ญํ ์ ํ๋ ํค์๋. ์ค์ ๋ก ์ฌ์ฉํด๋ณด๋ฉด debugger ํค์๋๊ฐ ์๋ ์ง์ ์ ๋ธ๋ ์ดํฌ๊ฐ ๊ฑธ๋ฆฐ๋ค. ๋จ ์ค์ ์๋์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌํ์ฒด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค. ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ์์ ํฌ๋กฌ51, ํํญ47, IE11, ์ฃ์ง์์ ์ ์ ์๋ํ๋๊ฑธ ํ์ธํจ.
๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด์ด๋๊ณ ์๋ ์ฝ๋๋ฅผ ์คํํด๋ณด์:
var str = 'debugger test';
function fn() {
debugger;
return str;
}
fn();