diff --git a/conten/함수/README.md b/conten/함수/README.md deleted file mode 100644 index d38121d..0000000 --- a/conten/함수/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# 함수 - -Javascript에서 함수는 유연성이 높다. - -## 목차 -- [익명 함수](#익명-함수) -- [즉시실행함수](#즉시실행함수) -- [함수호출방법](#함수-호출-방법) - -### 익명 함수 - -```javascript -function() { - return '익명 함수입니다'; -} -``` - -이름이 없는 함수를 익명함수라 한다. -이름이 없기에 기존의 함수 호출 방법으로는 익명함수를 호출 할 수 없다. -```javascript -getId(); -``` -와 같이 이름으로 호출 할 수 없다. - ---- - -**Javascript에서 함수는 `값`으로 인식된다.** - -즉, `a = 10` 처럼 a라는 변수에 10이라는 값을 담듯이 -변수 안에 함수를 담을 수 있다는 것이다. - -이를 통해 익명함수를 호출할 수 있다. - -```javascript -const testFunc = function() { - return '익명함수를 호출합니다'; -} -``` - -testFunc라는 변수안에 `익명함수를 호출합니다` 라는 문자열을 반환하는 함수가 담긴다. - - -```javascript -testFunc(); -``` -이와 같이 익명함수를 호출 할 수 있다. - ---- -### 즉시실행함수 -또 한가지 방법으로 **즉시실행함수** 가 있다. - -```javascript -(function(a) { - return a * 2; -})(2) -// 4 -``` - -코드의 형태를 보면 함수의 선언문을 괄호로 감싼 뒤 바로 호출해주는 모습이다. -함수를 선언함과 동시에 실행한다고 보면 된다. - -익명함수만 즉시실행함수로 정의가 가능한 것은 아니다. -즉시실행함수로 비익명(기명)함수도 실행가능하다. -```javascript -(function multiply(a) { - return a * 2; -})(2) -``` ---- -### 함수 호출 방법 - -1. `함수의이름()` - -일반적인 방법이다. - -2. `call` 함수 -3. `apply` 함수 - -`call`함수와 `apply`함수는 사용법은 거의 같으나 함수 호출에 필요한 인자를 넘겨주는 방식에 차이가 있다. - -```javascript -function concat(a, b) { - return `${a} ${b}`; -} - -concat.call(null, 'Hello', 'world!'); -concat.apply(null, ['Hello', 'world!']) -``` - -5번, 6번라인의 코드 모두 `Hello world!` 라는 같은 결과를 반환한다. -다만, `call`은 함수 호출에 필요한 인자를 쭉- 나열하는 방식이지만 `apply`는 인자를 배열 안의 요소로 담아 넘겨준다. - -필요와 용도에 따라 사용하면 될 것 같다.