Skip to content

Latest commit

 

History

History
33 lines (21 loc) · 922 Bytes

함수표현식과 함수선언식 차이.md

File metadata and controls

33 lines (21 loc) · 922 Bytes

함수표현식과 함수선언식 차이

함수 선언식은 호이스팅에 영향을 받는다.

표현식은 X

→ 따라서 표현식으로 쓰는 게 에러 관리나 추적에 훨씬 용이하다.

함수 표현식의 장점

  • 클로저로 사용
  • 콜백으로 넘길 수 있다(재활용 가능)
  • IIFE

→ 함수 선언식에서도 전부 가능.

JS 엔진은 함수표현식으로 선언을 할 때는 익명함수를 할당한 변수명과 같은이름을 함수에 붙이고, 함수선언식으로 선언할 때는

function foo(){
	console.log('foo');
}

->

var foo = function(){
	console.log('foo');
}

와 같이 선언을 하게 된다.

함수 선언식, 함수 표현식, 함수 생성자함수를 사용한 방법 모두 내부적으로는 Function() 생성자를 사용하여 생성되므로 생성된 함수들은 내부 [[prototype]] 링크로 Function.prototype을 갖는다.