κ°μ²΄λ?
μλ° μ€ν¬λ¦½νΈλ λͺ¨λ κ²μ΄ κ°μ²΄λΌλ λ§μ΄ μμ μ λλ‘ μλ° μ€ν¬λ¦½νΈμμ κ°μ²΄λ μ€μν κ°λ .
μλ° μ€ν¬λ¦½νΈλ ν΄λμ€ κΈ°λ°μ΄ μλ νλ‘ν νμ (prototype)μ κΈ°λ°μΌλ‘ νλ κ°μ²΄ κΈ°λ° μΈμ΄
μΈμ λ κ°μ²΄λ₯Ό μΆκ°νκ±°λ μμ νλ κ²μ΄ κ°λ₯νλ€. (μλ°μμλ λΆκ°λ₯)
νλ‘ν νμ (prototype)
μλ‘€μ΄ κ°μ²΄μ μ΄κΈ° μμ±μ κ°μ Έ μ€λ ν νλ¦ΏμΌλ‘ μ¬μ©λλ κ°μ²΄
κ°μ²΄ μνμΈ νλ‘ν νμ μ μ΄μ©νμ¬ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€λ©°, μμ±λλ κ°μ²΄λ λ λ€λ₯Έ κ°μ²΄μ μνμ΄ λ μ μμ
__proto__ : μμμμ λ¬Όλ € λ°μ κ°μ²΄μ νλ‘ν νμ μ λν μ 보
prototype : μμ μ νλ‘ν νμ μ κ°μ²΄, νμλ‘€ λ¬Όλ €μ€ νλ‘ν νμ μ μ 보
μλ° μ€ν¬λ¦½νΈμμ μ¬μ©νλ κ°μ²΄
β λ¬Έμ κ°μ²΄ λͺ¨λΈ(DOM)
μΉ λ¬Έμμ κ·Έ μμ μ½μ λμ΄ μλ μ΄λ―Έμ§μ λ§ν¬, ν μ€νΈ νλ λ±
μΌλ°μ μΌλ‘ μΉ λ¬Έμμ μ½μ νλ μμλ document, image, link κ°μ²΄
β λΈλΌμ°μ κ΄λ ¨ κ°μ²΄
μΉ λΈλΌμ°μ μμ μ¬μ©νλ μ 보
μ¬μ©νλ λΈλΌμ°μ μ 보λ₯Ό λ΄κ³ μλ navigator κ°μ²΄λ₯Ό λΉλ‘―ν΄ history, location, screen κ°μ²΄λ‘ λ±
β λ΄μ₯ κ°μ²΄
μΉ νλ‘κ·Έλλ°μ ν λ μμ£Ό μ¬μ©νλ μμλ‘ μλ° μ€ν¬λ¦½νΈ μμ 미리 κ°μ²΄λ‘ μ μλμ΄ μμ
ex) λ μ§, μκ°κ³Ό κ΄λ ¨λ νλ‘κ·Έλ¨μ κ°λ°νκΈ° μν΄μλ Date κ°μ²΄ μ΄μ©
λ₯Ό μ¬μ©ν λλ μμ±μ μ΄μ©ν΄μ
μλ°μ€ν¬λ¦½νΈλ μΈμ λ μ§ κ°μ²΄λ₯Ό μΆκ°νκ±°λ μμ κ°λ₯ (μλ°λ λΆκ°λ₯)
ν΄λμ€ κΈ°λ°μ΄ μλ, νλ‘ν νμ (μμμκ² λ¬Όλ €μ€ λ°μ΄ν°λ₯Ό κ°μ§κ³ μλ κ³΅κ° - μμ) κΈ°λ°
리μ‘νΈλ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ ν¨
νλ‘ν νμ μ μ΄μ©νμ¬ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€ μ μμ (νλ‘ν νμ μ μλ²μ§κ° λ γΉ μ μλ€)
νλ‘ν λ μλ²μ§κ° κ°μ§κ³ μμ
νλ‘ν νμ μ λ΄κ° κ°μ§κ³ μμ
νΉμ§
λͺ¨λ κ°μ²΄λ λ€λ₯Έ κ°μ²΄λ‘λΆν° μμ
(μ΅μμ κ°μ²΄ :Object - Objectλ₯Ό μ μΈν λͺ¨λ κ°μ²΄λ Objectλ₯Ό μλ²μ§λ‘)
κ°μ²΄ μμ± λ°©λ²
1), 2) λ°©λ²μ μ£Όλ‘ μ¬μ©
1) κ°μ²΄ μ΄λμ λΌμ΄μ (object initializer) λλ 리ν°λ
μμ±μ μ΄λ¦μ μ€ λ ''/ " μμ΄λ λκ³ μμ΄λ λ¨
var obj = {
name : 'νκΈΈλ',
age : 20
};
μ¬λ¬ νλ‘νΌν°λ₯Ό κ°μ§ κ°μ²΄λ₯Ό μ½κ² μ μν μ μλ νκΈ°λ²
{} μμ 'νλ‘νΌν° μ΄λ¦: νλ‘νΌν° κ°' ννλ‘ νκΈ°
console.log(typeof obj);
console.log(obj);
console.log(obj.name);
λΉ κ°μ²΄λ‘ μμ±
var obj={ };
2) μμ±μ ν¨μ(constructor function)
μμ±μ ν¨μλ₯Ό μ΄μ©ν΄μ κ°μ²΄λ₯Ό λ§λ€ μ μμ
μμ±μ ν¨μλ μΌλ°μ μΌλ‘ λλ¬Έμλ‘ λ§λ¦
μμ±μ ν¨μμ μλ νλ‘νΌν°λ this μ¬μ©
function User(name, age){
this.name = name; // μμ±(νλ‘νΌν°)
this.age = age;
// λ©μλ
this.state = () => this.age >= 19? 'μ±μΈ':'μ΄λ©';
this.msg = function(){
console.log(this.name+ ":" + this.state());
};
}
3) Object.create() λ©μλ
μμ λ°©λ²μΌλ‘ μμ±λμ΄ λ©λͺ¨λ¦¬μ λμ λ κ°μ²΄λ₯Ό μΈμ€ν΄μ€(instance) λΌκ³ ν¨
ν΄λμ€λ?
κ°μ²΄λ₯Ό μμ±νκΈ° μν ν νλ¦Ώ
ν΄λμ€ μμ±
class User {
constructor({name, age}){ // μμ±μ ν¨μ
this.name = name; // νλ
this.age = age;
}
sayHello(){ // λ©μλ
return 'μλ
λ΄ μ΄λ¦μ ' + this.name +'μ
λλ€';
}
}
ν΄λμ€ μμμμ μμ±μλ constructor λΌλ μ΄λ¦μΌλ‘ λ§λ λ€
'π»Programming > πββοΈJavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] JSON (0) | 2022.09.22 |
---|---|
[JavaScript] 04. λ΄μ₯κ°μ²΄ μΆκ°ν΄μΌλ¨.. (0) | 2022.09.22 |
[JavaScript] μμΈμ²λ¦¬ (1) | 2022.09.22 |
[JavaScript] ν¨μ νΈμ΄μ€ν (0) | 2022.09.21 |
[JavaScript] 02. κΈ°λ³Έ λ¬Έλ² - ν¨μ : ν¨μμ μΈλ¬Έ/ν¨μννμ/κΈ°λͺ ν¨μ(μ΅λͺ ν¨μ)/μ¦μμ€νν¨μ/νμ΄ν ν¨μ (0) | 2022.09.21 |