ν΄λμ€
λ¬Έλ²μ μ€ν(Syntactic Sugar)
- μλ°μ€ν¬λ¦½νΈλ νλ‘ν νμ κΈ°λ°μ κ°μ²΄μ§ν₯ μΈμ΄λ₯Ό μ§μν©λλ€.
- es6μμ λμ λ ν΄λμ€λ ν΄λμ€ κΈ°λ° κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μ λ§€μ° ν‘μ¬ν κ°μ²΄ μμ± λ©μ»€λμ¦μ μ μν©λλ€.
- μ¬μ€ ν΄λμ€λ κ°μ²΄ μ§ν₯ λͺ¨λΈμ μ 곡νλ κ²μ΄ μλ ν¨μμ΄λ©° νλ‘ν νμ
κΈ°λ° ν¨ν΄μ ν΄λμ€ κΈ°λ° ν¨ν΄ μ²λΌ μ¬μ©ν μ μκ² νλ λ¬Έλ²μ μ€ν(
Syntactic Sugar
) μ΄λΌκ³ λ³Ό μ μλ€. - ν΄λμ€λ μμ±μ ν¨μμ λ§€μ° μ μ¬νκ² λμνμ§λ§ λͺ κ°μ§ μ°¨μ΄κ° μλ€.
- ν΄λμ€λ₯Ό
new
ν€μλ μμ΄ νΈμΆ νλ©΄ μλ¬, μμ±μ ν¨μλ μΌλ° ν¨μλ‘ νΈμΆλ¨ - ν΄λμ€λ μμμ μ§μνλ
extends
μsuper
ν€μλλ₯Ό μ 곡 - ν΄λμ€λ νΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ² μ²λΌ λμ, (ν¨μλ ν¨μ μ μΈλ¬Έ μΌλ‘ μ μ λ μμ±μν¨μλ ν¨μ νΈμ΄μ€ν , ν¨μ ννμμΌλ‘ μ μν μμ±μ ν¨μλ λ³μ νΈμ΄μ€ν λ°μ)
- ν΄λμ€ λ΄μ λͺ¨λ μ½λμλ μ묡μ μΌλ‘
strict mode
- ν΄λμ€μ λ©μλλ μ΄κ±°λμ§ μλλ€.
- ν΄λμ€λ₯Ό
- ν΄λμ€λ₯Ό λ¨μν λ¬Έλ²μ μ€νμΌλ‘ 보기 보λ€λ μλ‘μ΄ κ°μ²΄ μμ± λ©μ»€λμ¦ μΌλ‘ 보λ κ²μ΄ ν©λΉ
ν΄λμ€μ μ μ
- ν΄λμ€λ
class
ν€μλλ₯Ό μ¬μ©νμ¬ μ μν¨ - ν΄λμ€λ μΌκΈ κ°μ²΄ μ΄λ©° ν¨μ
- ν΄λμ€ λͺΈμ²΄μ μ μν μ μλ λ©μλλ 3κ°μ§
- constructor(μμ±μ)
- νλ‘ν νμ λ©μλ
- μ μ λ©μλ
ν΄λμ€ νΈμ΄μ€ν
- ν΄λμ€λ ν¨μλ‘ νκ° λλ€.
- ν΄λμ€ μ μΈ λ¬ΈμΌλ‘ μ μν ν΄λμ€λ ν¨μ μ μΈλ¬Έκ³Ό κ°μ΄ λ°νμ μ΄μ μ μμ€μ½λ νκ° κ³Όμ μ κ±°μ³ ν¨μ κ°μ²΄λ₯Ό μμ±ν¨
class Person {}
console.log(typeof Person);
- μ΄λ μμ±λ μμ±μλ
constructor
( μμ±μμ νλ‘ν νμ μ μμΌλ‘ μ‘΄μ¬νκΈ° λλ¬Έμ μ΄λ νλ‘ν νμ λ μμ±λ¨) - λ¨, ν΄λμ€λ μ μ μ΄μ μ μ°Έμ‘° ν μ μλ€.
- νΈμ΄μ€ν
μ΄ λμ§ μμ κ² μ²λΌ 보μ΄λ μ΄λ
let
,const
μ²λΌTDZ
κ°λ μ΄ μ‘΄μ¬νκΈ° λλ¬Έ
μΈμ€ν΄μ€ μμ±
- ν΄λμ€λ μμ±μ ν¨μ μ΄λ―λ‘
new
μ°μ°μμ ν¨κ» νΈμΆλμ΄ μΈμ€ν΄μ€λ₯Ό μμ±
class Person {}
const me = new Person();
- κΈ°λͺ ν¨μ ννμκ³Ό λ§μ°¬κ°μ§λ‘ ν΄λμ€ ννμμ μγ μ©ν ν΄λμ€ μ΄λ¦μ μΈλΆ μ½λμμ μ κ·Ό λΆκ°λ₯
const Person = class MyClass {};
// ν¨μ ννμκ³Ό λ§μ°¬κ°μ§λ‘ ν΄λμ€λ₯Ό κ°λ¦¬ν€λ μλ³μλ‘ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌ νλ€.
const me = new Person();
// ν΄λμ€ μ΄λ¦ MyClassλ ν¨μμ λμΌνκ² ν΄λμ€ λͺΈμ²΄ λ΄λΆμμλ§ μ ν¨ν μλ³μλ€.
console.log(MyClass); // ReferenceError: MyClass is not defined
const you = new MyClass(); // ReferenceError: MyClass is not defined
λ©μλ
- ν΄λμ€ λͺΈμ²΄μμ μ μν μ μλ λ©μλ 3κ°μ§
constructor
(μμ±μ)- νλ‘ν νμ λ©μλ
- μ μ λ©μλ
constructor
- μΈμ€ν΄μ€λ₯Ό μμ±νκ³ μ΄κΈ°ννκΈ° μν νΉμν λ©μλ(μ΄λ¦ λ³κ²½ λΆκ°)
constructor
λ΄λΆμthis
λ μμ±μ ν¨μμ λ§μ°¬κ°μ§λ‘ ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν¨λ€.constructor
λ λ©μλλ‘ ν΄μλλ κ²μ΄ μλλΌ, ν΄λμ€κ° νκ°λμ΄ μμ±λ ν¨μ κ°μ²΄μ μ½λμ μΌλΆκ° λ¨ν΄λμ€ μ μκ° νκ°λλ©΄ constructorμ κΈ°μ λ λμμ νλ ν¨μ κ°μ²΄κ° μμ±
ν΄λμ€μ constructor λ©μλμ νλ‘ν νμ μ constructor νλ‘νΌν°λ μ§μ μ μΈ κ΄λ ¨ μλ€.
νλ‘ν νμ μ constructor νλ‘νΌν°λ λͺ¨λ νλ‘ν νμ μ΄ κ°μ§κ³ μλ νλ¬νΌν° μ΄λ©°, μμ±μ ν¨μλ₯Ό κ°λ¦¬ν¨λ€.
constructorλ μμ±μ ν¨μμ μ μ¬νμ§λ§ μ°¨μ΄κ° μλ€.
- constructorλ ν΄λμ λ΄μ μ΅λ ν κ°λ§ μ‘΄μ¬ κ°λ₯
- constructorλ μλ΅ κ°λ₯ (μλ΅μ λΉ constructorκ° μ묡μ μΌλ‘ μ μ λ¨)
- constructorλ μΈμ€ν΄μ€λ₯Ό μμ±κ³Ό λμμ νλ‘νΌν°λ₯Ό μ΄κΈ°ν ν©λλ€.
곡ν΅μ : λ³λμ λ°ν(return
) μ κ°μ§ μμμΌν¨, μ묡μ μΌλ‘ this λ°ν
νλ‘ν νμ λ©μλ
- ν΄λμ€ λͺΈμ²΄μμ μ μν λ©μλλ μμ±μ ν¨μ λ°©μκ³Ό λ¬λ¦¬ ν΄λμμ
prototype
νλ‘νΌν°μ λ©μλλ₯Ό μΆκ°νμ§ μμλ κΈ°λ³Έμ μΌλ‘ νλ‘ν νμ λ©μλκ° λλ€.
class Person {
// μμ±μ
constructor(name) {
// μΈμ€ν΄μ€ μμ± λ° μ΄κΈ°ν
this.name = name;
}
// νλ‘ν νμ
λ©μλ
sayHi() {
console.log(`Hi! My name is ${this.name}`);
}
}
const me = new Person('Lee');
me.sayHi(); // Hi! My name is Lee
- μμ±μ ν¨μμ λ§μ°¬κ°μ§λ‘ ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€ νλ‘ν νμ 체μΈμ μΌμμ΄ λλ€.
- μ 리 : ν΄λμ€λ μμ±μ ν¨μμ κ°μ΄ μΈμ€ν΄μ€λ₯Ό μμ±νλ μμ±μ ν¨μλΌκ³ λ³Ό μ μλ€. μ¦, ν΄λμ€λ νλ‘ν νμ κΈ°λ°μ κ°μ²΄ μμ± λ©μ»€λμ¦ μ΄λ€.
μ μ λ©μλ
- μ μ (
static
)λ©μλλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμλ νΈμΆ ν μ μλ λ©μλλ₯Ό λ§νλ€. - μμ±μ ν¨μ κ²½μ° μ μ λ©μλλ₯Ό μμ±νκΈ° μν΄ λͺ μμ μΌλ‘ μμ±μ ν¨μμ λ©μλλ₯Ό μΆκ°νμ¬μΌ ν©λλ€.
- ν΄λμ€μμλ λ©μλμ
static
ν€μλλ₯Ό λΆμ΄λ©΄ μ μ λ©μλ(ν΄λμ€ λ©μλ)κ° λλ€.
class Person {
// μμ±μ
constructor(name) {
// μΈμ€ν΄μ€ μμ± λ° μ΄κΈ°ν
this.name = name;
}
// μ μ λ©μλ
static sayHi() {
console.log('Hi!');
}
}
- μ μ λ©μλλ ν΄λμ€μ λ°μΈλ©λ λ©μλκ° λλ€.
μ μ λ©μλμ νλ‘ν νμ λ©μλμ μ°¨μ΄
- μ μ λ©μλμ νλ‘ν νμ λ©μλλ μμ μ΄ μν΄ μλ νλ‘ν νμ 체μΈμ΄ λ€λ₯΄λ€
- μ μ λ©μλλ ν΄λμ€λ‘ νΈμΆνκ³ νλ‘ν νμ λ©μλλ μΈμ€ν΄μ€λ‘ νΈμΆ
- μ μ λ©μλλ μΈμ€ν΄μ€ νλ‘νΌν°λ₯Ό μ°Έμ‘°ν μ μμ§λ§ νλ‘ν νμ
λ©μλλ μΈμ€ν΄μ€ νλ‘νΌν°λ₯Ό μ°Έμ‘°ν μ μλ€.this λ°μΈλ© μ리μ λ°λΌ μ μ λ©μλλ ν΄λμ€λ‘ νΈμΆ νκΈ° λλ¬Έμ λ΄λΆμ μΈμ€ν΄μ€ νλ‘νΌν°λ₯Ό μ°Έμ‘° ν μ μμ΅λλ€.
thisλ₯Ό μ¬μ©νμ§ μλλ€λ©΄ μ μ λ©μλλ‘ μ μνλ κ²λ μ’μ
ν΄λμ€μμ μ μν λ©μλμ νΉμ§
function
ν€μλλ₯Ό μλ΅ν λ©μλ μΆμ½ νν μ¬μ©.- κ°μ²΄ 리ν°λ΄κ³Ό λ€λ₯΄κ² μ½€λ§κ° νμ μμ.
- μ묡μ μΌλ‘
strict mode
λ‘ μ€ν. for ... in
λ¬Έμ΄λObject.keys
λ©μλ λ±μΌλ‘ μ΄κ±°ν μ μμ.- λ΄λΆ λ©μλ
[[Construct]]
λ₯Ό κ°μ§ μλnon-constructor
. λ°λΌμnew
μ°μ°μμ ν¨κ» νΈμΆ λΆκ°.
ν΄λμ€ μΈμ€ν΄μ€ μμ± κ³Όμ
- μΈμ€ν΄μ€ μμ±κ³Ό this λ°μΈλ©
new
μ°μ°μμ ν¨κ» ν΄λμ€λ₯Ό νΈμΆνλ©΄constructor
λ΄λΆ μ½λκ° μ€νλκΈ°μ μμ μ묡μ μΌλ‘ λΉ κ°μ²΄ μμ±.- μ΄ λΉ κ°μ²΄κ° ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€κ° λ¨.
- μ΄λ, ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€μ νλ‘ν νμ
μΌλ‘ ν΄λμ€μ
prototype
νλ‘νΌν°κ° κ°λ¦¬ν€λ κ°μ²΄ μ€μ . - μ묡μ μΌλ‘ μμ±λ λΉ κ°μ²΄. μ¦, μΈμ€ν΄μ€λ
this
μ λ°μΈλ©.λ°λΌμconstructor
λ΄λΆμthis
λ ν΄λμ€κ° μμ±ν μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν΄.
- μΈμ€ν΄μ€ μ΄κΈ°ν
constructor
μ λ΄λΆ μ½λκ° μ€νthis
μ λ°μΈλ©λμ΄ μλ μΈμ€ν΄μ€ μ΄κΈ°νconstructor
κ° μλ΅ λμλ€λ©΄ μ΄ κ³Όμ λ μλ΅ λ¨
- μΈμ€ν΄μ€ λ°ν
- ν΄λμ€μ λͺ¨λ μ²λ¦¬κ° λλλ§ μΈμ€ν΄μ€κ° λ°μΈλ© λ
this
κ° μ묡 μ μΌλ‘ λ°ν
- ν΄λμ€μ λͺ¨λ μ²λ¦¬κ° λλλ§ μΈμ€ν΄μ€κ° λ°μΈλ© λ
νλ‘νΌν°
μΈμ€ν΄μ€ νλ‘νΌν°
- μΈμ€ν΄μ€ νλ‘νΌν°λ
constructor
λ΄λΆμ μ μ κ°λ₯ - μλ°μ€ν¬λ¦½νΈμμλ μ κ·Όμ νμλ₯Ό μ§μνμ§ μκΈ° λλ¬Έμ μΈμ€ν΄μ€ νλ‘νΌν°λ
public
μ κ·Όμ νλ‘νΌν°
μ κ·Όμ νλ‘νΌν°λ?
μ체μ μΌλ‘ κ°([[ Value ]]
λ΄λΆμ¬λ‘―)μ κ°μ§ μκ³ λ°μ΄ν° νλ‘νΌν°μ κ°μ μ½κ±°λ μ μ₯ν λ μ¬μ©νλ μ κ·Όμ ν¨μλ‘ κ΅¬μ±λ νλ‘νΌν°
- μμ
// κ°μ²΄ 리ν°λ΄ λ°©μ
const person = {
// λ°μ΄ν° νλ‘νΌν°
firstName : 'homie',
lastName : 'kim',
// μ κ·Όμ νλ‘νΌν°
get fullName() {
return `${this.fristname} ${this.lastName}`;
},
set fullName(name) {
[this.firstName, this.lastName] = name.split(' ');
}
};
// class λ°©μ
class Person {
// λ°μ΄ν° νλ‘νΌν°
constructor(firstName, lastName) {
this.firstName =firstName;
this.lastName = lastName;
}
// μ κ·Όμ νλ‘νΌν°
get fullName() {
return `${this.fristname} ${this.lastName}`;
}
set fullName(name) {
[this.firstName, this.lastName] = name.split(' ');
}
};
const me = new Person('Homie Kim');
- ν΄λμ€μ λ©μλλ κΈ°λ³Έμ μΌλ‘ νλ‘ν νμ λ©μλκ° λ©λλ€. μ κ·Όμ νλ‘νΌν° λν νλ‘ν νμ νλ‘νΌν°μ΄λ€.
private νλ μ μ μ μ
- μλ°μ€ν¬λ¦½νΈμ ν΄λμ€μ νλ‘νΌν°λ κΈ°λ³Έμ μΌλ‘
public
μ λλ€. - μ΅μ μλ°μ€ν¬λ¦½νΈμμλ
private
λ₯Ό μ μ ν μ μλ νμ€ μ¬μμ΄ μλ‘κ² μ μ λμμ΅λλ€.
class Person {
// private νλ μ μ, pirvate νλλ λ°λμ ν΄λμ€ λͺΈμ²΄μμ μ μ λμ΄μΌ ν©λλ€.(μμ±μ λ΄λΆλ μλ¨)
#name = '';
constructor(name) {
this.#name = name;
}
// nameμ μ κ·Όμ νλ‘νΌν°λ€.
get name() {
// private νλλ₯Ό μ°Έμ‘°νμ¬ trimν λ€μ λ°ννλ€.
return this.#name.trim();
}
}
const me = new Person(' Lee ');
console.log(me.name); // Lee
μμμ μν ν΄λμ€ νμ₯
- νλ‘ν νμ κΈ°λ°μ μμμ νλ‘ν νμ 체μΈμ ν΅ν΄ λ€λ₯Έ κ°μ²΄μ μμ°μ μμλ°λ κ°λ
- μμμ μν ν΄λμ€ νμ₯μ κΈ°μ‘΄ ν΄λμ€λ₯Ό μμλ°μ μλ‘μ΄ ν΄λμ€λ₯Ό νμ₯νμ¬ μ μνλ κ²
extends
ν€μλλ₯Ό μ 곡νμ¬ μμμ ꡬνν©λλ€.
extends ν€μλ
// μνΌ(λ² μ΄μ€/λΆλͺ¨)ν΄λμ€
class Base {}
// μλΈ(νμ/μμ) ν΄λμ€
class Derived extends Base {}
- ν΄λμ€λ λ΄λΆμ μΌλ‘λ νλ‘ν νμ μ ν΅ν΄ μμ κ΄κ³λ₯Ό ꡬνν©λλ€.
- μνΌν΄λμ€μ μλΈν΄λμ€λ μΈμ€ν΄μ€μ νλ‘ν νμ μ²΄μΈ λΏ μλλΌ ν΄λμ€κ°μ νλ‘ν νμ 체μΈλ μμ±ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ νλ‘ν νμ λ©μλ, μ μ λ©μλ λͺ¨λ μμμ΄ κ°λ₯
λμ μμ
extends
ν€μλλ ν΄λμ€ λΏλ§ μλλΌ μμ±μ ν¨μλ₯Ό μμλ°μ ν΄λμ€λ₯Ό νμ₯ν μλ μλ€.
// μμ±μ ν¨μ
function Base(a) {
this.a = a;
}
// μμ±μ ν¨μλ₯Ό μμλ°λ μλΈν΄λμ€
class Derived extends Base {}
const derived = new Derived(1);
console.log(derived); // Derived {a: 1}
extends
ν€μλ λ€μμλ ν΄λμ€ λΏλ§ μλλΌ,[[Construct]]
λ΄λΆ λ©μλλ₯Ό κ°λ ν¨μ κ°μ²΄λ‘ νκ°λ μ μλ λͺ¨λ ννμ μ¬μ© κ°λ₯.
function Base1() {}
class Base2 {}
let condition = true;
// 쑰건μ λ°λΌ λμ μΌλ‘ μμ λμμ κ²°μ νλ μλΈν΄λμ€
class Derived extends (condition ? Base1 : Base2) {}
const derived = new Derived();
console.log(derived); // Derived {}
console.log(derived instanceof Base1); // true
console.log(derived instanceof Base2); // false
μλΈ ν΄λμ€μ constructor
- ν΄λμ€μμ
constructor
λ₯Ό μλ΅νλ©΄ μ묡μ μΌλ‘ μμ±μ΄ λ©λλ€. - μλΈ ν΄λμ€μμ constructorλ₯Ό μλ΅νλ©΄ μνΌ ν΄λμ€μ constructorλ₯Ό νΈμΆνμ¬ μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
// μνΌν΄λμ€
class Base {}
// μλΈν΄λμ€
class Derived extends Base {
// μλ΅ μ λ€μκ³Ό κ°μ μμ±μ νΈμΆ λ¨
constructor(...args) { super(...args); }
}
super ν€μλ
super
ν€μλλ ν¨μμ²λΌ νΈμΆν μλ μκ³this
μ κ°μ΄ μλ³μ μ²λΌ μ°Έμ‘°ν μ μλ νΉμν ν€μλμ΄λ€.- superλ₯Ό νΈμΆνλ©΄ μνΌν΄λμ€μ constructorλ₯Ό νΈμΆ νλ€.
superλ₯Ό μ°Έμ‘°νλ©΄ μνΌν΄λμ€μ λ©μλλ₯Ό νΈμΆ ν μ μλ€. - super νΈμΆμ μ£Όμ μ¬ν
- μλΈν΄λμ€μμ constructorλ₯Ό μλ΅νμ§ μλ κ²½μ° μλΈν΄λμ€μ constructorμμλ λ°λμ superλ₯Ό νΈμΆ ν΄μΌ νλ€.
- μλΈν΄λμ€μ constructorμμ superλ₯Ό νΈμΆνκΈ° μ μλ thisλ₯Ό μ°Έμ‘°ν μ μλ€.
- superλ λ°λμ μλΈν΄λμ€μ constructorμμλ§ νΈμΆνλ€. μλΈ ν΄λμ€κ° μλ ν΄λμ€μ constructorλ ν¨μμμ superλ₯Ό νΈμΆνλ©΄ μλ¬
- superλ₯Ό μ°Έμ‘°νλ©΄ μνΌν΄λμ€μ λ©μλλ₯Ό νΈμΆν μ μλ€.
μμ ν΄λμ€μ μΈμ€ν΄μ€ μμ± κ³Όμ
- μλΈ ν΄λμ€μ
super
νΈμΆ- μλ°μ€ν¬λ¦½νΈ μμ§μ ν΄λμ€λ₯Ό νκ°ν λ μνΌν΄λμ€μ μλΈν΄λμ€λ₯Ό ꡬλΆνκΈ° μν΄
base
λλderived
λ₯Ό κ°μΌλ‘ κ°λ λ΄λΆμ¬λ‘―[[ ConstructorKind ]]
λ₯Ό κ°λλ€. - λ€λ₯Έ ν΄λμ€λ₯Ό μμλ°μ§ μλ ν΄λμ€λ λ΄λΆ μ¬λ‘―
[[ConstructorKind]]
μ κ°μ΄ "base". - λ€λ₯Έ ν΄λμ€λ₯Ό μμ λ°λ μλΈ ν΄λμ€λ λ΄λΆ μ¬λ‘―
[[ConstructorKind]]
μ κ°μ΄ "derived". - μλΈν΄λμ€λ μμ μ΄ μ§μ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ , μνΌν΄λμ€μκ² μΈμ€ν΄μ€ μμ±μ μμνλ€.μλΈν΄λμ€μ constructorμμ λ°λμ super λ₯Ό νΈμΆν΄μΌ νλ μ΄μ
- μλΈν΄λμ€μμ superκ° νΈμΆλλ©΄ μνΌ ν΄λμ€μ
constructor
νΈμΆ
- μλ°μ€ν¬λ¦½νΈ μμ§μ ν΄λμ€λ₯Ό νκ°ν λ μνΌν΄λμ€μ μλΈν΄λμ€λ₯Ό ꡬλΆνκΈ° μν΄
- μνΌν΄λμ€μ μΈμ€ν΄μ€ μμ±κ³Ό
this
λ°μΈλ©- μνΌν΄λμ€μ
constructor
λ΄λΆ μ½λ μ€ν λκΈ° μ΄μ μ μ묡μ μΌλ‘ λΉ κ°μ²΄ μμ± - μνΌν΄λμ€κ° μμ±ν λΉ κ°μ²΄κ° μ¦, μΈμ€ν΄μ€λ thisμ λ°μΈλ©λ¨
- μμ±λ μΈμ€ν΄μ€λ μνΌν΄λμ€κ° μμ±ν κ² μ΄μ§λ§
new
μ°μ°μμ νΈμΆλ ν΄λμ€κ° μλΈ ν΄λμ€μ΄λ―λ‘ new μ ν¨κ» νΈμΆλ ν¨μλ₯Ό κ°λ¦¬ν€λ new.targetμ μλΈν΄λμ€λ₯Ό κ°λ¦¬ν΄
- μνΌν΄λμ€μ
- μνΌν΄λμ€μ μΈμ€ν΄μ€ μ΄κΈ°ν
- μνΌν΄λμ€μ
constructor
κ° μ€ν λμ΄ μΈμ€ν΄μ€μ νλ‘νΌν°λ₯Ό μ΄κΈ°ν
- μνΌν΄λμ€μ
- μλΈν΄λμ€ constructorλ‘μ 볡κ·μ this λ°μΈλ©
super
μ νΈμΆμ΄ μ’ λ£λκ³ λ€μ μλΈν΄λμ€μconstructor
λ‘ λμμ΄- μ΄λ
super
κ° λ°νν μΈμ€ν΄μ€κ°this
μ λ°μΈλ© λ¨ - μλΈν΄λμ€λ λ³λμ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³
super
κ° λ°νν μΈμ€ν΄μ€λ₯Όthis
μ λ°μΈλ©νμ¬ κ·Έλλ‘ μ¬μ©
- μλΈν΄λμ€μ μΈμ€ν΄μ€ μ΄κΈ°ν
- μλΈν΄λμ€μ
constructor
κ° μ€νλλ©΄μ μΈμ€ν΄μ€μ νλ‘νΌν° μ΄κΈ°ν
- μλΈν΄λμ€μ
- μΈμ€ν΄μ€ λ°ν
- λ°μΈλ© λ
this
κ° μ묡μ μΌλ‘ λ°ν
- λ°μΈλ© λ
'javascript > π study' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[7μ£Όμ°¨ μ€ν°λ]33μ₯-Symbol (0) | 2022.03.27 |
---|---|
[5μ£Όμ°¨ μ€ν°λ]26μ₯-ES6 ν¨μ μΆκ° κΈ°λ₯ (0) | 2022.03.27 |
[5μ£Όμ°¨ μ€ν°λ]24μ₯-ν΄λ‘μ (0) | 2022.03.27 |
[4μ£Όμ°¨ μ€ν°λ] 23μ₯-μ€ν 컨ν μ€νΈ (0) | 2022.02.23 |
[4μ£Όμ°¨ μ€ν°λ] 22μ₯- this (0) | 2022.02.23 |
λκΈ