... | ... | @@ -326,14 +326,15 @@ var me = new Person("Lee"); |
|
|
me.sayHi(); // Hi! Lee.
|
|
|
```
|
|
|

|
|
|
`get`과 `set`키워드 외에도 `static`키워드를 사용해 static 메소드를 정의하는 것도 가능하다.
|
|
|
|
|
|
```js
|
|
|
class Person {
|
|
|
// constructor라는 이름으로 정의
|
|
|
constructor(name) {
|
|
|
this._name = name;
|
|
|
}
|
|
|
|
|
|
// 객체에서 메소드를 정의할 때 사용하던 문법을 그대로 사용하면, 메소드가 자동으로 Person.prototype`에 저장됩니다.
|
|
|
sayHi() {
|
|
|
console.log(`Hi! ${this._name}`);
|
|
|
}
|
... | ... | @@ -342,6 +343,11 @@ class Person { |
|
|
const me = new Person("Lee");
|
|
|
me.sayHi(); // Hi! Lee
|
|
|
```
|
|
|
ES2015 이전의 생성자와 ES2015의 클래스는 다음과 같은 차이점이 있습니다.
|
|
|
|
|
|
* 클래스는 함수로 호출될 수 없습니다.
|
|
|
* 클래스 선언은 let과 const처럼 블록 스코프에 선언되며, 호이스팅(hoisting)이 일어나지 않습니다.
|
|
|
* 클래스의 메소드 안에서 super 키워드를 사용할 수 있습니다.
|
|
|
|
|
|
---
|
|
|
|
... | ... | |