(μμ 23.5.2)
π· 10.1 κ°μ²΄λ?
JSλ κ°μ²΄ κΈ°λ°μ νλ‘κ·Έλλ° μΈμ΄μ΄λ©°, JS λ₯Ό ꡬμ±νλ κ±°μ λͺ¨λ κ²μ΄ κ°μ²΄.
μμκ°μ λ³κ²½ λΆκ°λ₯μ΄μ§λ§, κ°μ²΄λ λ³κ²½ κ°λ₯ν κ°.
κ°μ²΄λ 0κ° μ΄μμ νλ‘νΌν°λ‘ ꡬμ±λ μ§ν©μ΄λ©°, νλ‘νΌν°λ ν€μ κ°μΌλ‘ ꡬμ±λλ€.
νλ‘νΌν° κ°μ΄ ν¨μμΌ κ²½μ°, μΌλ° ν¨μμ ꡬλΆνκΈ° μν΄ 'λ©μλ' λΌκ³ νλ€.
let counter = {
num: 0 // νλ‘νΌν°
increase: function(){
this.num++;
} //λ©μλ
}
π΅ νλ‘νΌν° : κ°μ²΄μ μνκ°μ λνλ.
π΅ λ©μλ : νλ‘νΌν°λ₯Ό μ°Έμ‘°νκ³ μ‘°μν μ μλ λμ
-> κ°μ²΄λ μνμ λμμ νλμ λ¨μλ‘ κ΅¬μ‘°ν ν μ μμ΄ μ μ©
π΅ κ°μ²΄μ ν¨μ
- ν¨μλ‘ κ°μ²΄λ₯Ό μμ±νκΈ°λ νμ§λ§, ν¨μ μμ²΄κ° κ°μ²΄μ΄κΈ°λ νλ€.
π·10.2 κ°μ²΄ 리ν°λ΄μ μν κ°μ²΄ μμ±
JSλ νλ‘ν κΈ°λ° κ°μ²΄ μ§ν₯ μΈμ΄ -> λ€ν₯ν κ°μ²΄ μμ± λ°©λ²μ μ§μν¨.
(ν΄λμ€ κΈ°λ° κ°μ²΄ μ§ν₯κ³Ό λ€λ¦)
- κ°μ²΄ 리ν°λ΄
- Object μμ±μ ν¨μ
- μμ±μ ν¨μ
- Object.create 맀μλ
- ν΄λμ (ES6)
=> κ°μ₯ μΌλ°μ μ΄κ³ κ°λ¨ν λ°©λ²μ κ°μ²΄ 리ν°λ΄μ μ¬μ©νλ λ°©λ².
- λ³μ ν λΉνλ©΄μ {} μμ μ°λ©΄ λ¨.
ex)
const person = { name: "λλλΌ", sayHello: () => console.log(`Hello ${this.name}`) };
(this λ₯Ό μ¨μ€μΌ μ¬μ©μ΄ κ°λ₯)
- κ°μ²΄ 리ν°λ΄μ κ°μΌλ‘ νκ°λλ ννμ. => μΈλ―Έμ½λ‘ μ λΆμΈλ€.
- κ°μ²΄ μμ± μ΄νμ νλ‘νΌν°λ₯Ό λμ μΌλ‘ μΆκ°ν μλ μλ€.
π·10.3 νλ‘νΌν°
κ°μ²΄λ νλ‘νΌν°μ μ§ν©μ΄λ©°, νλ‘νΌν°λ ν€μ κ°μΌλ‘ ꡬμ±λλ€.
νλ‘νΌν°λ , λ‘ κ΅¬λΆ
const person = {
name: ['Bob', 'Smith'],
age: 32,
interests: ['music', 'skiing'],
greeting: function() {
alert('Hi! I\'m ' + this.name[0] + '.');
}
};
- νλ‘νΌν° ν€ : λΉ λ¬Έμμ΄μ ν¬ν¨νλ λͺ¨λ λ¬Έμμ΄ λλ μ¬λ² κ°
- νλ‘νΌν° κ° : JS μμ μ¬μ©ν μ μλ λͺ¨λ κ°
νλ‘νΌν° ν€
νλ‘νΌν° ν€λ νλ‘νΌν° κ°μ μ κ·Όν μ μλ μ΄λ¦ -> μλ³μ μν
λ°λμ μλ³μ λ€μ΄λ° κ·μΉμ λ°λΌμΌ νλ κ²μ μλμ§λ§, λ°λ₯΄μ§ μμ μμ "" λ₯Ό μ¬μ©ν΄μΌ νλ€.
λ¬Έμμ΄λ‘ νκ°ν μ μλ ννμμ μ¬μ©ν΄ ν€λ₯Ό λμ μΌλ‘ μ¬μ©ν κ²½μ° (λ¬Έμμ΄μ΄ λ³μμ μ μ₯λμ΄ μμ λ, κ·Έ λ³μ μ΄λ¦ μ¬μ©) => [ key μ΄λ¦ ] λκ΄νΈλ‘ λ¬Άμ΄μ μ¬μ©ν΄μΌν¨
λΉ λ¬Έμμ΄λ νλ‘νΌν° ν€λ‘ μ¬μ©ν μ μλ€.
νλ‘νΌν° ν€λ‘ μ«μλ₯Ό μ¬μ©νλ©΄ λ°μ΄νλ λΆμ§ μμ§λ§, λ΄λΆμ μΌλ‘λ λ¬Έμμ΄λ‘ λ³νλ¨.
μμ½μ΄λ₯Ό νλ‘νΌν° ν€λ‘ μ¬μ©ν΄λ μλ¬κ° λμ§ μμ§λ§, μμμΉ λͺ»ν μλ¬κ° λ°μν μ μμΌλ κΆμ₯νμ§ μμ.
(ex) var, const... )
const key = "last-name";
const person = {
firstName: 'Bob', // O
last-name:'Smith', // β
"last-name":'Smith', // O
};
console.log(person[key]); // 'Smith'
π· 10.4 λ©μλ
JSμμ μ¬μ©ν μ μλ λͺ¨λ κ°μ νλ‘νΌν° κ°μΌλ‘ μ¬μ© κ°λ₯
ν¨μλ κ°μΌλ‘ μ·¨κΈν μ μκΈ° λλ¬Έμ νλ‘νΌν° κ°μΌλ‘ μ¬μ© κ°λ₯.
λ©μλ : κ°μ²΄μ λ¬Άμ¬μλ ν¨μ
맀μλ λ΄λΆμ this : κ°μ²΄ μμ μ κ°λ¦¬ν€λ μ°Έμ‘°λ³μ
π· 10.5 νλ‘νΌν° μ κ·Ό
μ κ·Ό λ°©λ²
- λ§μΉ¨ν νλ‘νΌν° μ κ·Ό μ°μ°μ : .
- λκ΄νΈ νλ‘νΌν° μ κ·Ό μ°μ°μ : [...]
[] μ¬μ©μ ->
νλ‘νΌν° ν€λ λ°λμ λ°μ΄νλ‘ κ°μΌ λ¬Έμμ΄μ΄μ¬μΌ ν¨.
μκ·ΈλΌ μλ³μλ‘ ν΄μν¨.
const person = {
name: 'Lee'
};
console.log(person.name) // 'Lee'
console.log(person['name']) // 'Lee'
μλ λκ° κ°μκ±°μ.
λ€μ΄λ°μ μ€μνμ§ μμ μ΄λ¦μ΄λ©΄ λκ΄νΈ νκΈ°λ²μ μ¬μ©ν΄μΌν¨.
νλ‘νΌν° ν€κ° μ«μμΈ κ²½μ° '' μλ΅ κ°λ₯
const person = {
1: 10,
}
person[1] === person['1']) //κ°μκ±°μ
//μ΄λ κ²λ μ¬μ© λͺ»ν¨
person.1
person.'1'
π· 10.6 νλ‘νΌν° κ° κ°±μ
μ΄λ―Έ μ‘΄μ¬νλ νλ‘νΌν°μ κ°μ ν λΉνλ©΄ κ°μ΄ κ°±μ λ¨.
π· 10.7 νλ‘νΌν° λμ μμ±
μ‘΄μ¬νμ§ μλ νλ‘νΌν°μ κ°μ ν λΉνλ©΄ νλ‘νΌν°κ° λμ μΌλ‘ μμ± & μΆκ° & νλ‘νΌν° κ°μ΄ ν λΉλ¨.
π· 10.8 νλ‘νΌν° μμ
deleteλ‘ μμ ν μ μμ.
const person = { name: "λλλΌ", sayHello: () => console.log(`Hello ${this.name}`) };
delete person.name;
console.log(person);
//{ sayHello: () => console.log(`Hello ${this.name}`) };
μ΄λ°μμΌλ‘ νμ©ν μ μμ.
π· 10.9 ES6μμ μΆκ°λ κ°μ²΄ 리ν°λ΄μ νμ₯ κΈ°λ₯
10.9.1 νλ‘νΌν° μΆμ½ νν
νλ‘νΌν° κ°μΌλ‘ λ³μλ₯Ό μ¬μ©νλ κ²½μ°, λ³μμ μ΄λ¦κ³Ό νλ‘νΌν° ν€κ° λμΌν μ΄λ¦μΌ κ²½μ° ν€λ₯Ό μλ΅ν μ μλ€.
10.9.2 κ³μ°λ νλ‘νΌν° μ΄λ¦
μ¬μ©ν ννμμ [] λ‘ λ¬Άμ΄μΌ νλ€.
κ°μ²΄ 리ν°λ΄ `` λ μ¬μ©ν΄μ μ΄λ¦μ λ§λ€ μ μλ€.
const name = 'Name';
let i = 0;
obj [name + '_' + ++i] = i;
// obj = {
Name_1 : 1
}
const obj = {
obj[`${x} + ${y}`] : i
}
10.9.3 λ©μλ μΆμ½ νν
function ν€μλ μλ΅ κ°λ₯.
const obj1 = {
sayHi: function () {
console.log("Hi");
}
}
const obj2 = {
sayHi() {
console.log("Hi");
}
}
λκ° κ°μκ±°μ.
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 02μ₯ μλ°μ€ν¬λ¦½νΈλ? (0) | 2023.04.24 |
---|---|
[λͺ¨λ₯λ€] 01μ₯ νλ‘κ·Έλλ° (0) | 2023.04.24 |
[λͺ¨λ₯λ€] 08μ₯ μ μ΄λ¬Έ (0) | 2023.04.03 |
[λͺ¨λ₯λ€] 07μ₯ λ°μ΄ν° νμ (7.5~7.13) (0) | 2023.04.01 |
[λͺ¨λ₯λ€] 07μ₯ λ°μ΄ν° νμ (7.1~7.4) (0) | 2023.03.30 |