์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ์ค์ฝํ
- ๊ตฌ๋ฆํค
- suspense react-query
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- ์นด์นด์ค ์ฝํ
- emtion app router
- ์ฌ์ฉ์ฑ ๊ฐ์
- suspense ๋ณ๋ชฉํ์
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- emotion RSC
- ๋ฐฑ์ค 2108 nodejs
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- js
- next13 emotion
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- js ์ค์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๋ฐฑ์ค 1339๋ฒ nodejs
- suspense ๋น๋๊ธฐ
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- ์ต์ ๋์ฒด์ด๋
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- suspense ๋์์๋ฆฌ
- js ๋ฌธ์์ด ์์ถ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- app router emotion
- ๋ฐฑ์ค 1339๋ฒ js
- Today
- Total
Lennon FE
[JavaScript] ํ์ดํ ํจ์์ ์ผ๋ฐ ํจ์์ ์ฐจ์ด ๋ณธ๋ฌธ
[JavaScript] ํ์ดํ ํจ์์ ์ผ๋ฐ ํจ์์ ์ฐจ์ด
Lennon 2022. 6. 3. 15:39์๋ฐ์คํฌ๋ฆฝํธ์์ ์ผ๋ฐ ํจ์๋ ํจ์๋ฅผ ์ ์ธํ ๋ this์ ๋ฐ์ธ๋ฉํ ๊ฐ์ฒด๊ฐ ๋์ ์ผ๋ก ๊ฒฐ์ ๋๋ค.
์๋ ํจ์๊ฐ ์ด๋ป๊ฒ ์คํ๋ ์ง ์์ํด๋ณด์.
const obj = {
name: 'minho',
intro: function() {
console.log(this.name)
setTimeout(function() {
console.log(this.name)
}, 1000)
}
}
obj.intro()
๋
ผ๋ฆฌ์ ์ผ๋ก ์๊ฐํด๋ณด๋ฉด ๋น์ฐํ minho๊ฐ ๋ ๋ฒ ๋ฐ๊ฑฐ๋ผ ์๊ฐํ๋ค.
๊ทธ๋ฌ๋ ๋ ๋ฒ์งธ console.log๋ undefined๊ฐ ๋จ๋ ๊ฑธ ํ์ธํ ์ ์๋ค. ์ด์ ๋ ๋ฌด์์ผ๊น?
setTimeout ๋ด๋ถ์ this๋ window๋ฅผ ๊ฐ๋ฅดํค๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๋น ๋ฌธ์ ๋ฅผ ์๋ ์ฝ๋์ ๊ฐ์ด bind, call, apply๋ฅผ ํตํด ์ด๋์ ๋ฐ์ธ๋ฉํ ์ง ์ ํด์ค ์ ์์ง๋ง ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ด ์๋ค.
const obj = {
name: 'minho',
intro: function() {
console.log(this.name)
setTimeout(function() {
console.log(this.name)
}.bind(this), 1000)
}
}
obj.intro()
ํ์ดํ ํจ์
const obj = {
name: 'minho',
intro: function() {
console.log(this.name)
setTimeout(() => {
console.log(this.name)
}, 1000)
}
}
obj.intro()
์์๊ณผ ๊ฐ์ด minho๊ฐ ๋ ๋ฒ ๋จ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
ํ์ดํ ํจ์๋ ์ผ๋ฐ ํจ์์ ๋ฌ๋ฆฌ ์ธ์ ๋ ์์ ์ค์ฝํ์ this๋ฅผ ๊ฐ๋ฅดํค๊ธฐ ๋๋ฌธ์ ์๊ฐํ์ง ๋ชปํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
๊ทธ๋ฌ๋ ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋ฉ์๋๋ฅผ ์ ์ํ ๋
const obj = {
name: 'minho',
intro: () => console.log(`Hi my name is ${this.name}`)
};
obj.intro();
์ค์ ํธ์ถ์ ํ์ธํด๋ณด๋ฉด 'Hi my name is undefined` ๊ฐ ๋จ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
๋น์ฐํ๋ค. ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฅดํค๋ ๊ฒ ์๋๋ผ ์ ๊ธฐ์์ this๋ ์์ ์ปจํ์คํธ์ธ ์ ์ญ ๊ฐ์ฒด์ผ ์ ๋ฐ์ ์๋ค.
const obj = {
name: 'minho',
intro() {
console.log(`Hi my name is ${this.name}`)
}
};
obj.intro();
๋ฉ์๋๋ ์ ์ํ ๋๋ ์ถ์ฝ ๋ฉ์๋ ํํ์ ์ฌ์ฉํ์.
๋ฌธ์ ์ ๋ค์ ์ฃผ์ํ๋ฉฐ ํ์ดํํจ์๋ฅผ ์ฌ์ฉํ์!
'๐งโ๐ป Web > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ๊ณ ์ฐจํจ์ (0) | 2022.07.18 |
---|---|
[JavaScript] lodash sortBy (0) | 2022.07.02 |
[heroku] nodejs ๋ฐฐํฌํ ๋ dotenv ์ฒ๋ฆฌ (0) | 2022.03.25 |
billboard.js ์ ๋ํด ์์๋ณด์. (pie chart ์์) (0) | 2022.03.24 |
[์๋ฐ์คํฌ๋ฆฝํธ] 2์ฐจ์ ๋ฐฐ์ด ๊น์ ๋ณต์ฌ ํ๊ธฐ (0) | 2022.03.16 |