this
this
๋ ํ์ฌ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฅดํค๋ ํค์๋
ํน์ง
๋ชจ๋ ํจ์์ this๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฒด๊ฐ ์์ด๋ ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค.
function sayHi() { alert(this); } sayHi(); //undefined
์๊ฒฉ๋ชจ๋์ผ๋๋ undefined๋ฅผ ํ ๋นํ๊ณ , ์๊ฒฉ๋ชจ๋๊ฐ ์๋๋ผ๋ฉด ์ ์ญ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค. (๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ window๋ผ๋ ์ ์ญ ๊ฐ์ฒด)
this๋
๋ฐํ์
์ ๊ฒฐ์ ๋๋ค.let user = { name: 'John' }; let admin = { name: 'Admin' }; function sayHi() { alert(this.name); } user.f = sayHi; admin.f = sayHi; user.f(); //John (this == user) admin.f(); //Admin(this == admin) admin['f'](); //John (this == user) user['f'](); //Admin(this == admin)
์์ ๊ฐ์ด ํ๋์ ํจ์๋ก ์ฌ๋ฌ ๊ฐ์ฒด์์ ์ฌ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
this๊ฐ ๋ฌด์์ ๊ฐ๋ฆฌํค๋์ง ํท๊ฐ๋ ค ์ค์ ํ ์๋ ์๋ค๋ ๋จ์ ์ด ์๋ค.
ํ์ดํ ํจ์์๋ this๊ฐ ์๋ค ํ์ดํ ํจ์์์ this๋ฅผ ์ฐธ์กฐํ๋ฉด
ํ๋ฒํ
์ธ๋ถ ํจ์์์ this๊ฐ์ ๊ฐ์ ธ์จ๋ค.```js let user = { firstName: "๋ณด๋ผ", sayHi() { let arrow = () => alert(this.firstName); arrow(); } }; user.sayHi(); // ๋ณด๋ผ ``` ```js let user = { firstName: "๋ณด๋ผ", sayHi : () => alert(this.firstName); }; user.sayHi(); // undefined ```
Last updated