function main(){
console.log(this);
}
main() // window
๐ฉ window๋ผ๋ ๊ฐ์ฒด ์์ ๋ณด๋ฉด main์ด๋ผ๋ ํจ์๊ฐ ๋ค์ด์๋ค.
๐ฉ ์ ์ญ์ ์ผ๋ก ์คํ๋ ํจ์๋ window.main()๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์
this๊ฐ ์ํด์๋ ํจ์๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ window๋ก ๋ณธ๋ค.
๐ฅ ๊ทธ๋ฌ๋
**โuse strictโ**๋ชจ๋๋ก JS๋ฅผ ์คํํ๋ค๋ฉด, โundefinedโ๊ฐ ์ถ๋ ฅ๋๋ค.
ํจ์ ๋ด๋ถ์์ **โuse strictโ**๋ชจ๋๋ก ์คํํด๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
ํจ์ ์ค์ฝํ ์์์ this๊ฐ ์ ์๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
โ ๋ฉ์๋ ์์ this
const object = {
name: "TOM",
main: function(){
console.log(this)
},
};
object.main(); // { name: "TOM", main: ฦ}
๊ฐ์ฒด ์์ ๋ฉ์๋๋ฅผ ์์ฑํ ํ,
๋ฉ์๋์์ this๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์คํ์ํค๋ฉด
๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๊ฐ this๊ฐ ๋๋ค.
๐ฉํจ์์ ์์น๋ ์ค์ํ์ง ์๋ค!
function main(){
console.log(this)
}
const object = {
name: "TOM"
main,
};
object.main() // { name: "TOM", main: ฦ}
โ ํจ์๊ฐ ์ด๋์์ ์์ฑ๋๋์ง ์์น๋ ์ค์ํ์ง ์๋ค.
๊ทธ ํจ์๋ฅผ ํธ์ถํ ๊ฐ์ฒด๊ฐ this๊ฐ ๋จ
๐ฉํจ์์ ๊ฐ์ฅ ๊ฐ๊น๊ฒ ํธ์ถํ ๊ฐ์ฒด
function main(){
console.log(this)
}
const object = {
name: "TOM",
smallObject: {
name: "TOM JR",
main,
};
object.<u>**smallObject**</u>.main() //{name: 'TOM JR', main: ฦ}
โ ๊ฐ์ฒด๋ฅผ ํธ์ถํ ํจ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ฒด๊ฐ this๊ฐ ๋๋ค.