ํฐ์คํ ๋ฆฌ ๋ทฐ
53. ๋ฌด์์ด ์ถ๋ ฅ ๋ ๊น์?
function Car() {
this.make = "Lamborghini";
return { make: "Maserati" };
}
const myCar = new Car();
console.log(myCar.make);
- A: "Lamborghini"
- B: "Maserati"
- C: ReferenceError
- D: TypeError
new User(...)
๋ฅผ ์จ์ ํจ์๋ฅผ ์คํํ๋ฉด ์๋์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋์ํฉ๋๋ค.
- ๋น ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด
this
์ ํ ๋นํฉ๋๋ค. - ํจ์ ๋ณธ๋ฌธ์ ์คํํฉ๋๋ค.
this
์ ์๋ก์ด ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํดthis
๋ฅผ ์์ ํฉ๋๋ค. this
๋ฅผ ๋ฐํํฉ๋๋ค.
function User(name) {
// this = {}; (๋น ๊ฐ์ฒด๊ฐ ์์์ ์ผ๋ก ๋ง๋ค์ด์ง)
// ์๋ก์ด ํ๋กํผํฐ๋ฅผ this์ ์ถ๊ฐํจ
this.name = name;
this.isAdmin = false;
// return this; (this๊ฐ ์์์ ์ผ๋ก ๋ฐํ๋จ)
}
์์ฑ์์ return๋ฌธ
์์ฑ์ ํจ์์ ๋ณดํต return
๋ฌธ์ด ์์ต๋๋ค. ๋ฐํํด์ผ ํ ๊ฒ๋ค์ ๋ชจ๋ this
์ ์ ์ฅ๋๊ณ , this
๋ ์๋์ผ๋ก ๋ฐํ๋๊ธฐ ๋๋ฌธ์ ๋ฐํ๋ฌธ์ ๋ช
์์ ์ผ๋ก ์จ ์ค ํ์๊ฐ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ฝ return
๋ฌธ์ด ์๋ค๋ฉด ์ด๋ค ์ผ์ด ๋ฒ์ด์ง๊น์? ์๋์ ๊ฐ์ ๊ฐ๋จํ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค.
- ๊ฐ์ฒด๋ฅผ
return
ํ๋ค๋ฉด,this
๋์ ๊ฐ์ฒด๊ฐ ๋ฐํ๋ฉ๋๋ค. - ์์ํ์
return
ํ๋ค๋ฉด,return
๋ฌธ์ด ๋ฌด์๋ฉ๋๋ค. return
๋ค์ ๊ฐ์ฒด๊ฐ ์ค๋ฉด ์์ฑ์ ํจ์๋ ํด๋น ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ฃผ๊ณ , ์ด ์ธ์ ๊ฒฝ์ฐ๋this
๊ฐ ๋ฐํ๋์ฃ .
∴
return ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด ๊ฑ๊ฐ ๋ณ์์ ํ ๋น๋จ
๋ฐ๋ผ์ myCar ์๋ { make: "Maserati" }
์ด๋ผ๋ ๊ฐ์ฒด๊ฐ ํ ๋น๋๋ค.
์์ฑ์ํจ์์์ return์ ๋ช ์ํ์ง ์๋ ํธ์ด ์ข๊ฒ ...๋ค?
๋ฌธ์ ์ ์ถ์ฒ : https://github.com/lydiahallie/javascript-questions/blob/master/ko-KR/README-ko_KR.md#53-%EB%AC%B4%EC%97%87%EC%9D%B4-%EC%B6%9C%EB%A0%A5-%EB%90%A0%EA%B9%8C%EC%9A%94
ํด๋ต์ ์ถ์ฒ : https://ko.javascript.info/constructor-new#ref-901
'๊ณต๋ถ > JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ ๋ ํฐ๋ฅผ ์ฌ์ฉํ์ฌ DOM์์๋ฅผ ์ ํํ ์ ์๋ ๋ฐฉ๋ฒ๋ค (0) | 2020.07.11 |
---|---|
[JS] delete ์ฐ์ฐ์ (0) | 2020.07.06 |
[JS] forEach, for in, for of (์์์ Array empty ์์ ์ํ) (2) | 2020.07.06 |
[JS] String.slice() ์ String.substring() ๋น๊ต (0) | 2020.07.02 |
[ESLint & Prettier] expected indentation of 2 spaces but found 4. (5) | 2020.06.27 |
- ๋ถํธ์บ ํ
- DOM
- eslint
- ๋ฐ๋๋ผ์ฝ๋ฉ ํ๊ธฐ
- ์์ฑ์ํจ์
- HTML
- Stash
- KEYBOARD
- ์ฝ๋ฉ๋ถํธ์บ ํ
- GIT
- stackoverflow
- js
- book
- array
- VSC
- eventlistener
- review
- css
- string
- ๋ฐ๋๋ผ์ฝ๋ฉ
- Total
- Today
- Yesterday