๐ย ****Reference
Object.defineProperties(obj, props)
Object.defineProperties(obj, {
prop1: descriptor1,
prop2: descriptor2
// ...
});
Object.defineProperties()
๋ฉ์๋๋ ๊ฐ์ฒด์ ์๋ก์ด ์์ฑ์ ์ ์ํ๊ฑฐ๋ ๊ธฐ์กด์ ์์ฑ์ ์์ ํ๊ณ ๊ทธ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.obj
props
props
์ ๊ฐ ๊ฐ์ ๋ฐ์ดํฐ ์์ ์(data descriptor) ํน์ ์ ๊ทผ์ ์์ ์(accessor descriptor) ์ค ํ๋์ฌ์ผ ํ๋ฉฐ, ๋์์ ๋ ์ ํ์ ํฌํจํ ์ ์๋ค(Object.defineProperty()
ย ์ฐธ์กฐ).configurable
true
์ผ ๊ฒฝ์ฐ ์ด ์์ฑ ์์ ์์ ํํ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋, ์์ฑ์ ํด๋น ๊ฐ์ฒด์์ ์ญ์ ํ ์ ์๋ค.false
์ด๋ค.enumerable
true
์ผ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ฒด์ ์์ฑ์ ์ด๊ฑฐํ ๋ ์ด ์์ฑ์ด ์ด๊ฑฐ๋๋ค.false
์ด๋ค.value
undefined
์ด๋ค.writable
true
์ผ ๊ฒฝ์ฐ ์ด ์์ฑ์ ์ค์ ๋ ๊ฐ์ย ํ ๋น ์ฐ์ฐ์ย (en-US)๋ก ์์ ํ ์ ์๋ค.false
์ด๋ค.get
set
value
,ย writable
,ย get
,ย set
ย ํค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ง ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์์ ์๋ก ์ทจ๊ธํ๋ค.value
์ด๋ย writable
๊ณผย get
์ด๋ย set
ย ํค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ ์์ธ๊ฐ ๋ฐ์ํ๋ค.