let ์ด๋ฆ์
๋๋ค ={ name:'lee'}
function ๋ณ๊ฒฝ(obj){
obj={name:'cho'}
}
๋ณ๊ฒฝ(์ด๋ฆ์
๋๋ค)
์ด๋ ๊ฒํ๋ฉด ๋ณ๊ฒฝ(์ด๋ฆ์
๋๋ค) ๊ฐ์ผ๋ก 'lee'๋ก ๋ฐ๋.....์ง ์๋๋ค.
์??
ํ๋ผ๋ฏธํฐ๋ ์ผ์ข
์ ๋ณ์์ฒ๋ผ ์์ฑ๋๊ณ ์ฌ๋ผ์ง๋ ์กด์ฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฌ๊ธฐ์ obj ํ๋ผ๋ฏธํฐ ์๋ฆฌ์ ์ด๋ฆ์
๋๋ค ๋ผ๋ ๋ณ์๋ฅผ ๋ฃ์ผ๋ฉด ๋ณ๊ฒฝ(์ด๋ฆ์
๋๋ค)
๋ผ๋๊ฑด๋ณ๊ฒฝ(let obj=์ด๋ฆ์
๋๋ค)
์ ๊ฐ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
let ์ด๋ฆ์
๋๋ค ={ name:'lee'} // 'lee'๋ฅผ ๋ฐ๋ผ๋ด
๋ณ๊ฒฝ(let obj=์ด๋ฆ์
๋๋ค) // 'lee'๋ฅผ ๋ฐ๋ผ๋ด
const ํ์={
name:'LEE',
age:20,
}
๊ฐ ์๋ค. ๊ทผ๋ฐ ์ด๋ฐ ๊ฐ์ฒด๋ฅผ ๋ ๋ง๋ค๊ณ ์ถ์ ๊ฒ์ด๋ค.
const ํ์2={...ํ์}
object ํ์
์ = ๋ง ์ด์ฉํด์ ๊ทธ๋ฅ ๋ณต์ฌํ๋ฉด ์์ฃผ ํฐ์ผ์ด ๋๋ค. ์ด๊ฑด ํ์ดํ๋ง ์์ ๊ผญ ์ฅ์ด์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๋ด๊ฐ ์ง์ง ์์ ํ ๊ฒ ์๋๋ฐ ์์ ์ด ๋ ์๋ ์๋ค. ๊ทธ๋์ ๋์ ...
์ด์ฉํด์ ์์ ์๋ก์ด ๊ฐ ๋ง๋๋ ๋ฒ์ ๋ฐฐ์ ์๋ค.
๊ทผ๋ฐ ์ด๋ฐ ๊ฑธ 5๋ฐฑ๊ฐ ์ ๋ ๋ง๋ค๊ณ ์ถ๋ค....? ๊ทธ๋ผ ์ด์ ์ด๋ฐ ์์ผ๋ก ๋ง๋ค๋ค๊ฐ๋ ๋ด ์๋ชฉ์ด๋ ๊ทธ๋ ์๋ณ์ธ์ฌํ๋๊ฑฐ๋ค. ๋์ ์๋ชฉ์ ์์คํ๋๊ป ์ค๋์ object๋ค์ ์ด์ฌํ ์ฐ์ด๋ด๋ ๊ธฐ๊ณ(constructor)์ ๋ํด์ ๋ฐฐ์๋ณด๋๋ก ํ๊ฒ ๋ค.
constructor ๋ง๋ค ๋ function()์ด๋ผ๋ ํจ์ ๋ง๋๋ ํค์๋์ this ๋ง ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ constructor ์ด๋ฆ์ ๊ด์ต์ ์ผ๋ก ๋๋ฌธ์๋ก ์์ฑํด์ค๋ค. (๋ณดํต์ ์ผ๋ฐ ํจ์์ ๋ค๋ฅด๋ค๋ ์๋ฏธ๋ก)
function Student(){
this.name='LEE',
this.age=20,
}
const ํ์1=new Student()
const ํ์2=new Student()
์ด๋ฐ์์ผ๋ก ํ๋ฉด ์ด์ ํ์1๋,ํ์2๋ ์์์ ๋ง๋ ํ์์ด๋ ๋์ค์ค์ฅ๊ฐ์ ๊ฐ์ฒด์์ ์๋ฃ๋ฅผ ๊ฐ์ง๋ฉด์ ๋
๋ฆฝ์ ์ธ ๊ฐ์ฒด๊ฐ ๋์๋ค.
๋ง์ฝ ํ์ ์์ ํจ์๋ ์์๋ค๋ฉด, ํจ์๋ constructor ์์ ๋ฃ์ด์ค ์ ์๋ค.
์ฐธ๊ณ -> ๊ฐ์ฒด ์๋ฃ ์์ ํจ์ ๋ฃ๋ ๋ฒ
const ํ์={
name:'LEE',
age:20,
sayHi(){}
}
ํน์
const ํ์={
name:'LEE',
age:20,
sayHi: function (){}
}
๋ ์ค ์ํ๋ ๊ฑธ๋ก ๊ณจ๋ผ์ ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์ด์จ๋ ํจ์๋ฅผ ๊ฐ์ฒด ์์ ์ ๋ฃ์์ผ๋ฉด, constructor ์์์ ์ฌ์ฉํ๋ ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
function Student(){
this.name='LEE',
this.age=20,
this.sayHi=function(){
console.log(this.name+'์ด๋ผ๊ณ ํด')}
}
const ํ์1=new Student()
const ํ์2=new Student()
๊ทผ๋ฐ ์ฃ๋ค ๋๊ฐ์ ์๋ฃ๋ง ๋ง๋ค๋ฉด ์ฌ๋ฏธ์์ผ๋, ์๋ก ์์ฑ๋๋ ๊ฐ์ฒด์์ value ๋ฅผ ๋ค๋ฅด๊ฒ ์ฃผ๊ณ ์ถ์ผ๋ฉด ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค.
function Student(์ด๋ฆ,๋์ด){
this.name=์ด๋ฆ,
this.age=๋์ด,
this.sayHi=function(){
console.log(this.name+'์ด๋ผ๊ณ ํด')}
}
const ํ์1=new Student('Jo',28)
const ํ์2=new Student('Kim',27)