제이스크립트 화살표 함수

과목 추천:

ES6에서 꺽호 함수가 도입되었습니다.

꺽호 함수는 더 짧은 함수를 작성할 수 있게 합니다:

문법

직접 시험해 보세요

let myFunction = (a, b) => a * b;

hello = function() {
  꺽호 함수를 사용한 후:
}

직접 시험해 보세요

이전:

hello = () => {
  꺽호 함수를 사용한 후:
}

직접 시험해 보세요

return "Hello World!"; 정말 짧아졌습니다! 함수가 하나의 문장만 있고 그 문장이 값을 반환하면 꺽호와 return을 생략할 수 있습니다. return

키워드:

꺽호 함수의 기본 반환 값:

직접 시험해 보세요

hello = () => "Hello World!";주석:

이는 함수가 하나의 문장만 있을 때만 유효합니다.

매개변수가 있으면 꺽호 안에 값을 전달합니다:

매개변수를 포함한 꺽호 함수:

직접 시험해 보세요

hello = (val) => "Hello " + val;

실제로, 하나의 매개변수만 있으면 꺽호를 생략할 수도 있습니다:

꺽호 함수(불필요한 꺽호):

직접 시험해 보세요

hello = val => "Hello " + val;

에 대해 어떻게 대처해야 하나요? 일반 함수와 비교해 꺽호 함수는

결론적으로, 꺽호 함수를 사용하면 처리도 달라집니다. 의 바인딩.

일반 함수에서 키워드 호출하는 함수의 객체를 나타내며, 그것은 창, 문서, 버튼이나 다른 어떤 것도 될 수 있습니다.

꺽호 함수에 대해 키워드는 항상 꺽호 함수를 정의하는 객체를 나타냅니다.

이 차이를 이해하기 위해 두 개의 예제를 보겠습니다.

이 두 예제는 두 번 호출되었습니다. 첫 번째는 페이지 로드 시, 두 번째는 사용자가 버튼을 클릭할 때입니다.

첫 번째 예제는 일반 함수를 사용하고, 두 번째 예제는 꺽호 함수를 사용합니다.

결과는 첫 번째 예제가 두 개의 다른 객체(윈도우와 버튼)를 반환하고, 두 번째 예제는 두 번의 윈도우 객체를 반환하는 이유는 윈도우 객체가 함수의 '소유자'이기 때문입니다.

예제

일반 함수에서 this는 호출하는 함수의 객체를 나타냅니다:

// 일반 함수:
hello = function() {
  document.getElementById("demo").innerHTML += this;
}
// 윈도우 객체가 이 함수를 호출합니다:
window.addEventListener("load", hello);
// 버튼 객체가 이 함수를 호출합니다:
document.getElementById("btn").addEventListener("click", hello);

직접 시험해 보세요

예제

꺽호 함수를 사용하면 함수 소유자를 나타냅니다:

// 화살표 함수:
hello = () => {
  document.getElementById("demo").innerHTML += this;
}
// 윈도우 객체가 이 함수를 호출합니다:
window.addEventListener("load", hello);
// 버튼 객체가 이 함수를 호출합니다:
document.getElementById("btn").addEventListener("click", hello);

직접 시험해 보세요

함수를 사용할 때 이러한 차이점을 기억해야 합니다. 때로는 일반 함수의 동작이 바람직할 수 있으며, 그렇지 않으면 화살표 함수를 사용해야 합니다.

브라우저 지원

아래 표는 JavaScript 화살표 함수를 최초로 완전히 지원하는 브라우저 버전을 나타냅니다:

크롬 IE 파이어폭스 사파리 오페라
크롬 45 에지 12 파이어폭스 22 사파리 10 오페라 32
2015년 9월 2015년 7월 2013년 5월 2016년 9월 2015년 9월