메서드
ES6 이전의 모든 함수는 callable, construcor다. 콜백 함수도 constructor이기 때문에 불필요한 프로토타입 객체를 생성한다.
ES6 사양에서 메서드는 메서드 축약 표현으로 정의된 함수만을 의미한다.
const obj = {
x: 1,
// 메서드
foo() { return this.x; },
// 메서드 아님
bar: function() { return this.x; }
}
메서드는 인스턴스를 생성할 수 없는 non-constructor이고, protorype 프로퍼티도 없고, 프로토타입도 생성하지 않는다. super 키워드 또한 사용할 수 있다.
객체 리터럴 반환
const create = (id, content) => ({ id, content });
const create2 = (id, content) => {return { id, content } };
화살표 함수
non-constructor이다. 함수 자체의 this, arguments, super, new.target 바인딩을 갖지 않는다.
메서드(일반적인 의미)나 프로토타입 객체의 프로퍼티에 화살표 함수를 할당하지 말자. ES6 메서드 축약 표현을 사용하자.
'Today I Learned' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 28장 Number (0) | 2022.04.16 |
---|---|
모던 자바스크립트 Deep Dive 27장 배열 (0) | 2022.04.14 |
모던 자바스크립트 Deep Dive 25장 클래스 (0) | 2022.04.03 |
모던 자바스크립트 Deep Dive 24장 클로저 (0) | 2022.04.03 |
모던 자바스크립트 Deep Dive 22장 this (0) | 2022.03.30 |