자바스크립트의 함수 호출 방식

Juwon Lee·2024년 3월 23일
0

웹 개발

목록 보기
6/16

자바스크립트의 함수란?

자바스크립트에서 가장 중요한 개념 1순위는 당연히 함수다. 보편적 의미의 함수기능 뿐만 아니라 모듈화 처리나 클로저, 객체 생성 등 자바스크립트의 근간이 되는 많은 기능을 제공하고 있다.

자바스크립트에서는 함수도 객체이다. 즉, 함수의 기본 기능은 코드 실행 뿐만 아니라, 함수 자체가 일반 객체처럼 프로퍼티들을 가질 수 있다는 것이다. C언어나 java, python 등 다른 유명한 프로그래밍 언어와의 가장 큰 차이점이라고 생각한다. 자바 함수의 쓰임새 또한 일반 객체의 쓰임새와 같다. 변수나 프로퍼티의 값으로 할당이 될 수 있고, 함수 인자로 전달이 될 수 있고, 리턴값으로도 활용이 된다. 이러한 특성으로 인해 자바스크립트의 함수를 일급객체라 부른다.

함수를 만드는 방법

함수 리터럴 방식

함수명은 선택사항, 매개변수 타입은 기술 안 함

var hello = function(x, y){
   return x+y;
}

함수 선언문 방식

함수 리터럴 형태와 같지만, 반드시 함수명을 정의해야 함

var hello = function add(x,y){
   return x+y;
}

함수 표현문 방식

함수 리터럴로 하나의 함수를 만들고, 여기서 생성된 함수를 변수에 할당하여 함수를 생성하는 것, 익명 함수 표현식/기명 함수 표현식(함수 표현식에서 사용된 함수 이름은 외부코드에서 접근 불가능하지만, 대신 함수 내부에서 해당 함수를 재귀적으로 호출하거나 디버거 등에서 함수를 구분할 때 사용됨)

function add(x,y){
   return x+y;
}var plus = add;

fucntion() 생성자 함수를 이용하는 방식

자바스크립트의 함수도 function()이라는 기본 내장 생성자 함수로부터 생성된 객체라고 볼 수 있다. 함수 선언문이나 함수 표현식 방식도 Function() 생성자 함수가 아닌 함수 리터럴 방식으로 함수를 생성하지만, 결국엔 이 또한 내부적으로는 Function() 생성자 함수로 함수가 생성된다고 볼 수 있다.

var add = new Function('x', 'y', 'return x+y');
profile
기록을 잘 하고 싶어하는 백엔드 개발자입니다.

0개의 댓글