객체 지향 JavaScript — 함수로 작업하기

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

JavaScript는 부분적으로 객체 지향 언어입니다.

JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.

이 기사에서는 함수를 살펴보겠습니다.

함수 실행



함수 이름 뒤에 괄호를 추가하여 함수를 실행할 수 있습니다.

함수 정의 방법에 관계없이 작동합니다.

예를 들어 함수가 있는 경우:

const sum = function(a, b) {
  return a + b;
};


그런 다음 다음과 같이 작성하여 실행합니다.

sum(1, 2);


예상되는 숫자 인수sum를 전달합니다.

익명 기능



익명 함수는 이름이 없는 함수입니다.

이전에 사용했던 sum 함수에는 변수에 이름이 할당되지 않은 함수가 있었습니다.

이렇게 하면 어디서나 호출할 수 있습니다.

콜백 함수



콜백 함수는 다른 함수에 의해 호출되는 함수입니다.

예를 들어 다음과 같이 작성할 수 있습니다.

function runAdd(a, b) {
  return a() + b();
}

runAdd 함수는 ab 함수를 호출합니다.

따라서 2개의 함수를 전달해야 합니다.

다음과 같이 작성하여 사용할 수 있습니다.

const sum = runAdd(() => 1, () => 2)


1을 반환하는 함수와 2를 인수로 반환하는 함수를 전달했습니다.

그러면 3이 반환됩니다.

따라서 sum는 3입니다.

콜백은 비동기 코드를 실행할 때 유용합니다.

비동기 코드에 결과가 있을 때 콜백을 호출할 수 있습니다.
map , filterreduce 와 같은 배열 메서드와 같은 반복 작업을 수행하기 위해 동기식 콜백을 가질 수도 있습니다.

다음과 같이 작성하여 자체 map 메서드를 만들 수 있습니다.

function map(arr, callback) {
  const result = []
  for (const a of arr) {
    result.push(callback(a));
  }
  return result;
}


그런 다음 다음과 같이 작성하여 사용할 수 있습니다.

const result = map([1, 2, 3], (x) => x * 2);


그러면 result[2, 4, 6]  .
map는 배열arr을 취하고 for-of 루프를 사용하여 각 항목을 반복하고 각 항목이 있는 각 항목에 대해 callback를 호출합니다.

즉각적인 기능



즉시 함수는 정의된 직후에 호출되는 함수입니다.

예를 들어 다음과 같이 작성할 수 있습니다.

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


그런 다음 함수를 만들고 즉시 호출했습니다.

호출하고 있다는 것을 알 수 있도록 괄호로 묶어야 합니다.

다음과 같이 작성할 수도 있습니다.

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


반환된 값을 얻고 다음과 같이 작성할 수 있습니다.

const result = (function() {
  //...
  return {
    //...
  }
}());


함수에서 일부 결과를 반환하고 이를 result  에 할당합니다.

내부(비공개) 기능



함수는 다른 변수와 같으므로 다른 함수에 넣을 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

function outer(param) {
  function inner(a) {
    return a * 100;
  }
  return inner(param);
}


매개변수에 100을 곱한 값을 반환하는 inner 함수가 있습니다.

그런 다음 결과를 반환합니다.

내부 함수의 이점은 함수 내부의 변수에 외부에서 액세스할 수 없다는 것입니다.

그러나 내부 함수는 외부 함수의 변수에 액세스할 수 있습니다.

전역 범위에서 변수를 정의할 필요가 없기 때문에 이것은 큰 이점입니다.

결론



private 함수를 정의하면 많은 이점이 있습니다.

즉시 호출된 함수를 정의하여 무언가를 반환할 수도 있습니다.

함수는 익명일 수 있으며 다른 함수의 매개변수가 될 수 있습니다.

좋은 웹페이지 즐겨찾기