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