π this
1. κ·Έλ₯ μ¬μ©νλ€λ©΄
π λΈλΌμ°μ μμλ window / node.js μμλ global μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
2. μΌλ° ν¨μ λ΄λΆμμ νΈμΆ
π λΈλΌμ°μ μμλ window / node.js μμλ global μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
3. script type = 'module' λ°°κ²½μ μΌλ° ν¨μ λ΄λΆμμ νΈμΆ
π undefined μ μλ―Ένλ€.
4. object λ΄μ ν¨μ λ΄λΆμμ νΈμΆ
π ν΄λΉ ν¨μλ₯Ό μ€ν ν λ°λ‘ μ object λ₯Ό μλ―Έ
5. νμ΄ν ν¨μμμμ νΈμΆ
π λΈλΌμ°μ μμλ window / node.js μμλglobal μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
6. μμ±μ ν¨μ μμμμ νΈμΆ
π μλ‘ μμ±λλ intance(μμ±μ ν¨μλ‘ λΆν° μμ±λλ μ€λΈμ νΈ) λ₯Ό λ»νλ€.
7. μ΄λ²€νΈ 리μ€λ μμμμ νΈμΆ
π e.currentTarget λ₯Ό λ»νλ€.
μμ. 2) 4)
var obj1 = {
outer: function () {
//μ€λΈμ νΈ λ΄λΆμ ν¨μ μμμ this
console.log(this); //{ outer: [Function: outer] }
var innerFunc = function () {
//μΌλ° ν¨μ μμμ this
console.log(this); //global κ°μ²΄ νΈμΆ(node.jsμμ)
};
innerFunc(); //λλ²μ§Έλ‘ μ€ν __ λ©μλ λ΄λΆμμ νΈμΆλμμ§λ§ μμ μ μ΄ μμμΌλ‘ ν¨μλ‘μμ νΈμΆ
var obj2 = {
innerMethod: innerFunc, // μ΄ λΆλΆ λλ¬Έμ innerFuncκ° νλ²λ μ€ν.
//{ innerMethod: [Function: innerFunc] }
};
obj2.innerMethod(); //μΈλ²μ§Έλ‘ μ€ν
},
};
obj1.outer(); //첫λ²μ§Έλ‘ μ€ν
μμ. μμ±μ ν¨μ λ΄λΆμμ this
function Student(name, gender, school) {
this.name = name;
this.gender = gender;
this.school = school;
}
var kd = new Student("κΈΈλ", "male", "μνμ΄λ");
console.log(kd);
//Student { name: 'κΈΈλ', gender: 'male', school: 'μνμ΄λ' }
μμ. νμ΄ν ν¨μ λ΄λΆμμ this
var fullname = 'Ciryl Gane'
var fighter = {
fullname: 'John Jones',
opponent: {
fullname: 'Francis Ngannou',
getFullname: function () {
return this.fullname;
}
},
getFirstName: () => {
return this.fullname.split(' ')[0];
},
getLastName: (function() {
return this.fullname.split(' ')[1];
})()
}
console.log(fighter.getFirstName()); //Ciryl
console.log(fighter.getLastName) //Gane
fighter.getFirstName() μμμ thisλ windowκ° λλκ±Έ νμΈ ν μ μλ€.
fighterκ° λκ² νλ €λ©΄ νμ΄ν ν¨μκ° μλ, μΌλ° ν¨μλ₯Ό μ¬μ©νλ©΄ λλ€.
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
23/10/16 TIL __ λΉλκΈ°μ μ²λ¦¬ (promise, generator, async/await) (2) | 2023.10.16 |
---|---|
23/10/15 TIL __ .call() / .apply() / .bind() (1) | 2023.10.15 |
23/10/13 TIL _ λ¨μΆμμ±λͺ (property shorthand) (2) | 2023.10.13 |
23/10/12 TIL _ switch / break / continue (0) | 2023.10.12 |
23/10/11 TIL (1) | 2023.10.12 |