흥미롭게도 익명 함수 표현식을 사용하더라도 함수에 이름을 지정할 수 있다. 예를 들어 표현식의 결과를 상수 또는 변수에 할당하는 경우이다.
let foo = function() {
};
console.log(foo.name); // "foo"
이것은 자바스크립트 엔진에 의한 마술 알아맞히기가 아니다. 이름이 설정되는 시기와 위치는 사양에 명확하고 신중하게 정의되어 있다.
함수를 할당할 때 변수를 선언하든 나중에 함수를 할당하든 상관없다. 중요한 것은 함수를 만들 때이다.
let foo;
foo = function() {
};
console.log(foo.name); // "foo"
화살표 함수 표현식은 익명 함수 표현식과 동일하게 작동한다.
let foo = () => {
};
console.log(foo.name); // "foo"
하지만 변수/상수 할당만이 아니다. 이름이 문맥에서 파생되는 장소가 많이 있다.