함수의 선언
우리가 흔히 사용하는 함수 = Function 객체의 인스턴스
이다. 함수이름 = 함수 객체를 가리키는 포인터
이다. 따라서 오버로딩이 불가능하다.
1 | // 함수선언 |
함수 선언식은 코드 실행전에도, 모든 실행 컨텍스트에서 접근이 가능하다.
why? 함수 선언 호이스팅(끌어 올린다) 과정을 통해 실행 컨텍스트에 추가 되기 때문
그렇지만 함수 표현식은 코드실행전 까지 사용이 불가능하다.
1 | alert(sum(10, 10)); // 에러 |
특징
- 함수는 값이다.
Javascript에서는 함수도 값이다. var a = function() {}
= function a() {}
따라서 객체 안에 저장될 수 있다.(객체 안에 저장되면 메서드라고 불림)
- 함수는 인자로 전달될 수 있다.
함수는 값이기 때문에 인자로 전달 될 수도 있음.
1 | function calculator (func, num) { |
- 함수는 함수의 리턴값으로 사용될 수 있다.
1 | function calculator (mode) { |
calculator(‘increase’) = function increase(num) { return num+1 }
calculator(‘increase’)(1) = increase(1)
- 함수는 배열의 값으로 사용될 수 있다
1 | var calculator = [ |
Reference
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array
프론트엔드 개발자를 위한 자바스크립트 프로그래밍 - 니콜라스 자카스