D+28
- ์ฝ๋์คํ ์ด์ธ ๋ท์งธ ์ฃผ ํ๊ธฐ -
(๋ท์งธ ์ฃผ ํ๊ธฐ)
< ๋ท์งธ ์ฃผ ํ๊ธฐ๋ D+28์ด ์๋ D+30๊น์ง ํฌํจ๋ ๋ด์ฉ์ ๋๋ค. >
๋ฉฐ์น ์ ๊น์ง๋ง ํด๋ ๋๋ ์ฝ๋์คํ ์ด์ธ ๋ฅผ ์ ์ฒญํ ์ง ์์ฒญ ๋ง์ค์์๊ณ ,
์ง์ํ๊ธฐ ์ํด ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํ๋ ์๊ฐ๊น์ง๋
๋ด๊ฐ ๊ณผ์ฐ ์ํ ์ ํ์ผ๊นํ๋ ์์ฒญ๋ ๊ณ ๋ฏผ์ ๋น ์ ธ์์๋ค.
ํ์ง๋ง ์ง๊ธ์ ์ด๋๋ง ํ๋ฆฌ์ฝ์ค์ ๋ง์ง๋ง ๋จ๊ณ๊น์ง ๋ง์น๊ฒ ๋์๊ณ ,
ํ์ฌ๋ ํ๋ฆฌ์ฝ์ค์์ ๋๊ฐ์ ์ด๋จธ์๋ธ ์ฝ์ค๋ก ๊ฐ๊ธฐ ์ํ ๋ง์ง๋ง ๊ด๋ฌธ๋ง ๋จ๊ธด ์ํ์ด๋ค.
๊ฐ์๊ธฐ ๋น ๋ฅด๊ฒ ์ง๋๊ฐ ์๊ฐ ๋๋ฌธ์ ์์ง์ ์ค๊ฐ์ด ๋์ง๋ ์์ง๋ง
ํ์คํ ๊ฑด ์ฒซ๋ ์ ๋์ ์ง๊ธ์ ๋๋ฅผ ๋น๊ตํ์ ๋
ํ์คํ ๋ด๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณผ ์ ์๋ ๋๊ณผ ๋ค์ ์ ์๋ ๊ท๊ฐ ์๊ฒผ๋ค๋ ๊ฒ์
์ถฉ๋ถํ ๋๋ผ๊ณ ์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ ํ์ผ๋ก ๋ณด๋ด์ง๋ ์์๋ค๋ ๋ง์์ ์์ฌ์ด ๋๋ค.
ํ๋ฆฌ์ฝ์ค ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ๋ด๊ฒ ๋ฌ๋ผ์ง ์ ์ ๋ช ๊ฐ์ง ์ ํ์๋ฉด
ํ์ด ํ๋ก๊ทธ๋๋ฐ์ด ๋ ์ด์ ๋๋ ต์ง ์๊ฒ ๋์๋ค.
์ด๋ฐ์๋ ๋ง์ฃผ ๋ณด๊ณ ์๋๋ฐฉ๊ณผ ๋ํ๋ฅผ ํ๋ ค๋ ๋๋ฌด ๋ถ๋๋ฌ์ ๊ณ
๊ทธ ๊ณผ์ ์์ ๊ณผ์ ์ ๋ํ ๋ํ๋ฅผ ๋๋๋ ค๊ณ ํด๋ ๊ฐ์๊ธฐ ์๊ฒจ๋ฒ๋ฆฌ๋ ๋ฏผ๋งํจ์
์๊ณ ์์๋ ๊ฒ๋ ๊ฐ์๊ธฐ ์๊ฐ์ด ๋์ง ์๋ ์๊ฐ์ด ๋ง์์ผ๋ฉฐ,
ํ์ด์๊ฒ ํผํด๋ฅผ ๋ผ์น์ง ์์ผ๋ ค๊ณ ํ์คํ๊ฒ ์์ง ๋ชปํ๋ ๋ต์ ๋ง์ ํ์ง ์์ผ๋ ค๊ณ ํ๋ค ๋ณด๋
์๋ก ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ด ๋ถ์กฑํ ๊ฒฝํฅ์ด ์์๋ค.
ํ์ง๋ง ํ์ฌ๋ ์ต์ํ ๋ด๊ฐ ํ๊ณ ์ ํ๋ ๋ง์ ๊ผญ ํ๋ ค๊ณ ํ๊ณ
์๋๋ฐฉ์ ์๊ฒฌ์ ์ด์ ๋ถ์ฌ ์์ฑ๋ ๋์ ์๊ฒฌ์ ๋ง๋ค๋ ค๋ ์๋๊น์ง ํ๊ณ ์๋ค.
๋ฌผ๋ก ํ์ฌ๋ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ด ์ ๋ง ์ข๊ฑฐ๋ ๊ธฐ๋๋๋ ๊ฑด ์๋์ง๋ง
๊ทธ๋๋ ์ด๋ฐ์ ๋์ ๋น๊ตํด ๋ณด์์ ๋ ๋๋ ค์ํ์ง๋ ์๋ ๋ด ๋ชจ์ต์ ์์ฃผ ๋ง์กฑํ๋ค.
๊ทธ๋ฆฌ๊ณ ํผ์ฃ๋ง์ด ๋ง์์ก๋ค. ใ ใ
์ด๊ฑด ์ข์ ์ ์ธ์ง ์๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ผ๋
ํ ๋ฒ์ ํด๊ฒฐ๋์ง ์๋ ๋ฌธ์ ์์๋ ํผ์ฃ๋ง๋ก ๋ด๊ฐ ์ ์๋์ด ๋์ด
๋๊ตฐ๊ฐ๋ฅผ ๊ฐ๋ฅด์น๋ค๋ ๋๋์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋๊ฐ๊ณ ์๋๋ฐ
์ด๊ฒ ์๊ทผ ์ ํ๋ฆฌ๊ธฐ๋ ํ๊ณ ๋ง์ถ๋ฉด ์พ๊ฐ์ด ์ฅ๋ ์๋๋ค โบ๏ธ
์ง๊ธ๊น์ง ์ข์ ์ ๋ง ๋ง์ด ์ด์ผ๊ธฐํด์ ์๋ฒ ์ฃผ๊ฐ ์์ฃผ ๋ง์กฑ์ค๋ฝ๋ค๊ณ ๋๊ปด์ง ์๋ ์๊ฒ ์ง๋ง
์๋ฒ 4์ฃผ ์ฐจ๊ฐ ์จ์ ํ ๋ง์์ ๋ค์๋ค๋ ๊ฒ์ ์๋๋ค.
ํ์ฌ์๋ ๋๋ ๋ชจ๋ฅด๋ ๊ฒ์ด ๋ง๊ณ ์๋ก์ด ๊ฒ๋ค์ ์์๊ฐ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์๊ธฐ์
์ด์ ๋ณด๋ค, ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๋ณด๋ค ๋ ๋ง์ ๊ฒ๋ค์ ์์๊ฐ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ ๊ฒ์ด๋ค.
ํนํ ์ด๋ฒ ์ฃผ๋ ์ฐํด๋ก ์ฌ๋ ๋ ์ด ๋ง์๊ธฐ์
์ค์ค๋ก ์์์ ์์ ์ฑ ์์ ๊ณต๋ถํ๋ ค๋ ๋ง์๊ฐ์ง ๋ถ์กฑ๊ณผ
๋ํํจ์ผ๋ก ๋ฐ์ฑํด์ผ ํ ๋ ์ด ๋ฌด์ฒ์ด๋ ๋ง๋ค.
ํ์ง๋ง ์ ์ฒด์ ์ผ๋ก ๋ดค์ ๋๋ ์ด๋ฒ ํ ์ฃผ๋ ์์ผ๋ก ๋์๊ฒ ๋์์ ์ค ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๋
๊ทธ๋ ๊ฒ ํ๋ค๊ฒ ๋๊ปด์ง์ง๋ ์์๋ ๊ฒ ๊ฐ๋ค.
๋งค๋ฒ ๊ทธ๋ ๋ฏ์ด ๋งค๋ฒ ์์ฌ์ด ํ ์ฃผ์์ง๋ง
๋ค์ ์ฃผ์ ๋์ฑ ๋ฐ์ ๋ ๋ด ๋ชจ์ต์ ์ํด ๋จ๊ฒจ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ
์ด์ฌํ ๊ณต๋ถํ์.
๋ง์ง๋ง์ผ๋ก ์์ง๋ ํท๊ฐ๋ฆฌ๋ this...
๊ณ์ ๊ณต๋ถ๊ฐ ์๋ฌด๋๋ ํ์ํ ๋ฏ...
Global & Function ํธ์ถ
var name = 'Global Variable';
console.log(this.name); // "Global Variable"
function foo() {
console.log(this.name); // "Global Variable"
}
foo();
์ฌ๊ธฐ ํจ์ foo๊ฐ ์๊ณ , ์ ์ญ ๋ณ์๋ก name์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฌ๊ธฐ์ foo๋ฅผ ์คํํ๋ฉด์ ์ฝ์ ๋ก๊ทธ๋ก this.name์ ์คํํ์ ๋์
์ ์ญ์์ this.name์ ์ฐ์ ๊ฐ์ด ๊ฐ์ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์๋ํ๋ฉด name์ ์ ์ญ ์์ญ์ธ window์ ๋ฌถ์ฌ์๋ ๊ฐ์ด๋ค.
๋๋ฌธ์ name์ window.name๊ณผ ๊ฐ๋ค๊ณ ํ ์ ์๋ค.
๊ทธ๋ ๊ฒ ๋ฐ์ง๊ฒ ๋ ๊ฒฝ์ฐ ์ ์ญ ์์ญ์ ์๋ this๋ window๋ผ๊ณ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฉฐ,
๋ง์ฐฌ๊ฐ์ง๋ก ํจ์ foo์์ ์๋ this๋ window๋ฅผ ๋ํ๋ด๋ฏ๋ก ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค๊ณ ๋ณผ ์ ์๋ค.
var name = 'Global Variable';
function outer() {
function inner() {
console.log(this.name); // "Global Variable"
}
inner();
}
outer();
์ด์ ๊ฐ์ ๊ฒฝ์ฐ์๋ this๋ window๋ฅผ ๊ฐ๋ฆฌ์ผ "Global Variable"๋ฅผ ์ฐ์ด๋ด๋ ๊ฒ์ ์ ์ ์๋ค.
์ฆ this๋ ์ค์ฝํ๊ฐ ์ฌ๋ฌ ๊ฐ ๋ฌถ์ฌ์๋ค๊ณ ํด์ outer๋ inner๊ฐ ๋๋ ๊ฒ์ด ์๋๋ผ window์ธ this๊ฐ ๋๋ ๊ฒ์ด๋ค.
Method ํธ์ถ : ๋ถ๋ชจ object
์์ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ ๋ฐ๋ก ๋ฉ์๋ ํธ์ถ์ด๋ค.
๋ถ๋ชจ ์์ด ๋ฐ๋ก ํจ์๋ฅผ ์คํํ๋ ๊ฒ์ด ํจ์ ํธ์ถ์ด๋ผ ํ๋ค๋ฉด,
๋ฉ์๋ ํธ์ถ์ ๊ฐ์ฒด์ ๋ด๊ธด ํจ์, ์ฆ ๋ถ๋ชจ๊ฐ ์๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ด๋, ๋ถ๋ชจ๊ฐ ์๋ ๋ ์์์ ๋ฉ์๋๋ก ํธ์ถํ ๊ฒฝ์ฐ, this๋ ๋ถ๋ชจ ์ค๋ธ์ ํธ๊ฐ ๋๋ค.
(๋จ, ์ง๊ณ๋ถ๋ชจ๋ง ๋์ง์ด๋ธ๋ค)
var obj = {
fn: function(a, b) {
return this;
}
};
var obj2 = {
method: obj.fn
};
console.log(obj2.method() === obj2); //true
console.log(obj.fn() === obj); //true
์์ ์์์ this๋ ์คํ ์ฝํ ์คํธ์ด๊ธฐ ๋๋ฌธ์ ์คํ๋๋ ์์ ์ด ๊ต์ฅํ ์ค์ํ ๋ ์์ด๋ฏ๋ก,
์คํ๋๋ ์์ ์ ๋ถ๋ชจ๋ฅผ ํ์ธํ๋ฉด true๊ฐ์ด ๋์ค๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.
Construction mode
new ์ฐ์ฐ์๋ก ์์ฑ๋ ํจ์ ์์ญ์ this๋ฅผ ๋ํ๋ด๋ฉฐ ์ด๋์ this๋ constructor(์์ฑ์)๋ฅผ ๋ํ๋ธ๋ค.
.call or .apply ํธ์ถ
๋ช ์์ ์ผ๋ก ๋๊ฒจ์ค ๋ ์ฌ์ฉํ๋ค๊ณ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ ์ ์์ผ๋ฉฐ,
.apply๋ ๋ฐฐ์ด๋ก ๊ฐ์ ๋๊ฒจ์ฃผ๊ณ , .call์ ๊ทธ๋ฅ ๋จ์ํ ๊ฐ์ ์ ๋ ฅํ๋ฉด ๋๊ฒจ์ค๋ค๋ ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
'์๋ > Code-States' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+30] ํ๋ฆฌ์ฝ์ค ๋ง์ง๋ง Pair Programming (0) | 2020.10.06 |
---|---|
[D+29] ์ฌ๊ทํจ์ (0) | 2020.10.06 |
[D+24 - 27] ์ถ์์ฐํด...ใ (0) | 2020.09.30 |
[D+23] ๋น๋๊ธฐ ํธ์ถ๊ณผ ํ์ด๋จธ API (0) | 2020.09.29 |
[D+22] Java Script ์ฌํ๊ฐ๋ 'this' (0) | 2020.09.28 |
๋๊ธ