Today I Learned
모던 자바스크립트 Deep Dive 26장 ES6 함수의 추가 기능
스마일리
2022. 4. 13. 00:28
메서드
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 메서드 축약 표현을 사용하자.