본문 바로가기

Today I Learned

모던 자바스크립트 Deep Dive 26장 ES6 함수의 추가 기능

메서드

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 메서드 축약 표현을 사용하자.