- Published on
TILπ μ±κ°λ° μ€ν°λ - 1 week
- Authors
- Name
- Haneul
TILπ μ±κ°λ° μ€ν°λ - 1 week
Javascript
Object Oriented Programming
μμ : ν΄λμ€κ°λ μμ μμ ν΄λμ€(λΆλͺ¨)λ‘ λΆν° νμ ν΄λμ€(μμ)μ΄ μ μ°μ λ¬Όλ €λ°λκ²κ³Ό κ°μ΄, λΆλͺ¨μ λ©μλλ λ³μλ₯Ό μ¬μ©ν μ μλ κ²μ λ§ν¨.
λ€νμ± : κ°μ ν¨μκ° μλ€κ³ μΉ λ κ·Έ ν¨μκ° λ§€κ°λ³μμ λ°λΌ λ€λ₯Έ μν μ ν μ λ μλ€.
μΊ‘μν : λ³΄ν΅ λ°μ΄ν°λ₯Ό μλμν¨λ€κ³ νννλλ°, μΈλΆμμ μ½κ² λ°μ΄ν°λ₯Ό μ κ·Όν μ μκ² λ§λ€κΈ°λνκ³ , λ°μ΄ν° ꡬ쑰μ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ°©λ²λ€μ νλ°λ€ λ¬Άλκ².
μΆμν : 곡ν΅μ μΈ μμ±μ΄λ κΈ°λ₯μ λ¬Άμ΄μ μ΄λ¦μ λΆμ΄λ κ² ( a b d μ΄λ°κ²μλ€κ³ μΉλ©΄ μ΄λ°κ±΄ μνλ²³μ΄λΌκ³ λ¬Άμ μ μλ€)
OOPμ ν¨μν νλ‘κ·Έλλ°μ κ°μ₯ ν° μ°¨μ΄μ μ 무μμΈκ°
κ°μ²΄μ§ν₯μ κ°μ²΄ μμ μνλ₯Ό μ μ₯νκ³ , μ΄ μνλ₯Ό μ΄μ©ν΄μ λ©μλλ₯Ό μΆκ°νκ³ μνλ³νλ₯Ό μ€μ νκ³ μ‘°μ νκΈ°μν΄ λ€μν κΈ°λ₯μ μ¬μ©νλ€.
μ΄μ λ°ν΄ ν¨μν νλ‘κ·Έλλ°μ μνλ₯Ό μ μ΄νλκ²λ³΄λ€ μνλ₯Ό μ μ₯νμ§ μκ³ μμ λλ° μ£Όλ ₯νλ€.Β μλ₯Όλ€λ©΄, κ°μ²΄ μ§ν₯μ μνλ₯Ό μ μ₯νλ νλμ κ·Έ νλλ€μ μ΄μ©ν΄ κΈ°λ₯μ μ 곡νλ λ©μλλ₯Ό λ§λ€κ³ ν΄λμ€λ₯Ό λ§λλλ€. λ°λ©΄ ν¨μνμ λͺλͺ μλ£κ΅¬μ‘°(list, map, set) λ±μ μ΄μ©ν΄ μ΅μ νλ λμμ λ§λ€μ΄λΈλ€.
λ°μ΄ν° νμ
κΈ°λ³Έν : κ°μ κ·Έλλ‘ ν λΉ / λΆλ³μ βοΈ
Number / String / Boolean / null / undefined
μ°Έμ‘°ν : κ°μ΄ μ§μ λ μ£Όμκ°μ ν λΉ / λΆλ³μ β
Object / Array / Map
λ³μ μ μΈ
var : μ¬μ μΈ βοΈ / νΈμ΄μ€ν
μ μΈκ³Ό μ΄κΈ°νκ° νλ²μ μΌμ΄λ¨ (undefined λ‘ μ΄κΈ°ν)
let (es6) : μ¬μ μΈ β / μ¬ν λΉ βοΈ/ νΈμ΄μ€ν
μ μΈκ³Ό μ΄κΈ°νκ° λ°λ‘ λ°μ > λ³μ μ΄κΈ°νκ° μλ μνμμ μ°Έμ‘°νλ©΄ μλ¬
const (es6) : μ¬μ μΈ β / μ¬ν λΉ β
νμ΄ν ν¨μ
functionκ³Ό λ¬λ¦¬ ν¨μλ₯Ό μ μΈν λ thisμ λ°μΈλ©ν κ°μ²΄κ° μ μ μΌλ‘ κ²°μ λλ€.
μμμ€μ½νμ thisλ₯Ό κ°λ¦¬ν΄ (lexical this)
thisκ° windowκ°μ²΄λ₯Ό κ°λ¦¬ν€μ§ μκ² μ‘°μ¬ν΄μΌν¨!
call/apply/bindλ‘ this λ³κ²½ λΆκ°λ₯
Array.prototype.map()
arr.map(callback(currentValue[, index[, array]])[, thisArg])
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
mapμ callback ν¨μλ₯Ό κ°κ°μ μμμ λν΄ νλ²μ© μμλλ‘ λΆλ¬ κ·Έ ν¨μμ λ°νκ°μΌλ‘ μλ‘μ΄ λ°°μ΄μ λ§λλλ€. callback ν¨μλ (undefinedλ ν¬ν¨ν΄μ) λ°°μ΄ κ°μ΄ λ€μ΄μλ μΈλ±μ€μ λν΄μλ§ νΈμΆλ©λλ€. μ¦, κ°μ΄ μμ λκ±°λ μμ§ κ°μ΄ ν λΉ/μ μλμ§ μμ μΈλ±μ€μ λν΄μλ νΈμΆλμ§ μμ΅λλ€.
callback ν¨μλ νΈμΆλ λ λμ μμμ κ°, κ·Έ μμμ μΈλ±μ€, κ·Έλ¦¬κ³ mapμ νΈμΆν μλ³Έ λ°°μ΄ 3κ°μ μΈμλ₯Ό μ λ¬λ°μ΅λλ€.
thisArg 맀κ°λ³μκ° mapμ μ λ¬λ κ²½μ° callback ν¨μμ thisκ°μΌλ‘ μ¬μ©λ©λλ€. κ·Έ μΈμ κ²½μ° undefinedκ°μ΄ this κ°μΌλ‘ μ¬μ©λ©λλ€. callback ν¨μμμ μ΅μ’
μ μΌλ‘ λ³Ό μ μλ this κ°μ ν¨μ λ΄ thisλ₯Ό μ νλ μΌλ°μ μΈ κ·μΉμ λ°λΌ κ²°μ λ©λλ€.
TIL β
μ λ°μ μΌλ‘ μλ°μ€ν¬λ¦½νΈ κΈ°μ΄μ λν νμ΅μ΄μκ³ , κ°μΈμ μΌλ‘λ skip ν΄λ λ λ§ν μ λμ μμ€μ΄μλ€. λ€μ react native νμ΅μ κΈ°λν΄μΌκ² λ€. π
μ°Έκ³ : μ€νλ₯΄ν μ½λ©ν΄λ½, Javascript MDN