함수 종류
-
명시적 함수 : 이름이 명시되어 있는 함수
function myFunctiion(){};
-
익명(Anonymous)함수 : 이름이 없는 함수
fuction(){};
EX)
document.querySelector().addEventListener('click', function(){}); $().on('click', function(){}); => 주로 함수의 매개변수 형태로 함수를 정의할 때 사용한다 -------------------------- #### 사용형식
-
즉시실행 함수 : 함수 정의와 실행이 동시에 이루어진다 => 호출 없이 바로 사용된다
(function(){})();
-
리터럴 함수(함수 리터럴) : 함수를 변수에 할당하는 형식으로 정의한다 (** 리터럴 : 변수에 할당할 수 있는 값들)
let myFunction = function(){}
-
화살표 함수
let myFunction = () => {} -------------------------- #### 내부함수
-
내부(inner) 함수 : 함수(외부함수) 내부에 함수가 정의된다 -> 외부함수의 지역변수에 접근 할 수 있다 -> 함수 이름이 중복되는 것을 방지
EX)
function outer(){ let a = 0; function inner(){ a += 1; } } --------------------------
this
- this : 자신이 속한 객체(개체)를 참조한다
new
- new : 내장 객체 타입의 인스턴스를 생성한다
클로져
- 클로져 : 내부 함수를 반환값(return)으로 사용하는 특수한 함수 => 변수에 함수를 할당하는 형태 => 함수의 지역변수가 사라지지 않고 남아있게 된다 -> 자유변수 => let은 일반코드 블럭에서도 지역변수로 작동하기 때문에 글로져 개념을 도입할 수 있다