>일반적인 문제 >화살표 함수와 일반 함수의 차이점

화살표 함수와 일반 함수의 차이점

百草
百草원래의
2023-09-13 09:32:212416검색

화살표 함수와 일반 함수의 차이점은 주로 구문의 단순성, 차이점, 생성자에 적용할 수 없음, 인수 없음 객체 등에 있습니다. 자세한 소개: 1. 구문 간결성 화살표 함수의 구문은 일반 함수보다 간결합니다. 화살표 함수는 화살표를 사용하여 정의할 수 있으며 함수의 매개변수와 반환 값을 사용합니다. 화살표 함수는 매개변수가 하나만 있는 경우 괄호를 생략할 수도 있습니다. 2. 이는 다른 점 등을 가리킵니다.

화살표 함수와 일반 함수의 차이점

Arrow Function과 Regular Function은 JavaScript에서 함수를 정의하는 두 가지 방법으로 구문과 기능에 약간의 차이가 있습니다. 아래에서는 화살표 기능과 일반 기능의 차이점을 자세히 소개하겠습니다.

1. 구문 단순성:

화살표 함수의 구문은 일반 함수보다 더 간결합니다. 화살표 함수는 화살표(=>)를 사용하여 정의할 수 있으며, 함수 키워드와 중괄호를 생략하고 함수의 매개변수와 반환값을 직접 정의할 수 있습니다. 예:

   // 普通函数
   function regularFunc(a, b) {
     return a + b;
   }
   
   // 箭头函数
   const arrowFunc = (a, b) => a + b;

화살표 함수에는 매개변수가 하나만 있는 경우 괄호를 생략할 수도 있습니다. 예:

   // 普通函数
   function regularFunc(a) {
     return a * 2;
   }
   
   // 箭头函数
   const arrowFunc = a => a * 2;

2. 이것이 가리키는 것이 다릅니다:

일반 함수에서 this의 값은 함수가 호출될 때 결정되며, 함수를 호출하는 개체를 가리킵니다. 화살표 함수에서 this의 값은 함수가 정의될 ​​때 결정되며 화살표 함수가 정의되는 컨텍스트를 가리킵니다. 이는 화살표 함수가 자체 this를 갖지 않고 상위 범위의 this를 상속한다는 것을 의미합니다. 예:

   // 普通函数
   const obj = {
     name: 'Alice',
     regularFunc: function() {
       console.log(this.name);
     }
   };
   obj.regularFunc(); // 输出:Alice
   
   // 箭头函数
   const obj = {
     name: 'Alice',
     arrowFunc: () => {
       console.log(this.name);
     }
   };
   obj.arrowFunc(); // 输出:undefined

화살표 함수에서 이는 화살표 함수를 호출하는 개체가 아니라 화살표 함수가 정의된 컨텍스트를 가리킵니다.

3. 생성자에는 적용할 수 없습니다.

화살표 함수는 생성자로 사용할 수 없으며 객체는 new 키워드를 통해 인스턴스화할 수 없습니다. 일반 함수를 생성자로 사용할 수 있으며, new 키워드를 통해 객체 인스턴스를 생성할 수 있습니다. 예:

   // 普通函数
   function RegularConstructor() {
     this.name = 'Alice';
   }
   const regularObj = new RegularConstructor();
   
   // 箭头函数
   const ArrowConstructor = () => {
     this.name = 'Alice';
   };
   const arrowObj = new ArrowConstructor(); // 报错:ArrowConstructor is not a constructor

4. 인수 없음 개체:

일반 함수에서는 인수 개체를 사용하여 배열과 유사한 개체인 모든 들어오는 매개 변수에 액세스할 수 있습니다. 화살표 함수에는 자체 인수 개체가 없으며 상위 범위의 인수 개체를 상속합니다. 예를 들면 다음과 같습니다.

   // 普通函数
   function regularFunc() {
     console.log(arguments[0]);
   }
   regularFunc(1, 2, 3); // 输出:1
   
   // 箭头函数
   const arrowFunc = () => {
     console.log(arguments[0]);
   };
   arrowFunc(1, 2, 3); // 报错:arguments is not defined

요약하면 화살표 기능과 일반 기능의 문법적 차이는 주로 단순성과 이 포인팅에 반영됩니다. 화살표 함수는 더 간결한 구문을 가지고 있지만 생성자로 사용할 수 없으며 자체 this 및 인수 객체를 갖지 않습니다. 일반 함수의 구문은 상대적으로 복잡하지만 생성자로 사용할 수 있으며 자체 this 및 인수 개체를 갖습니다. 실제 사용에서는 특정 요구에 따라 적절한 기능 정의 방법을 선택할 수 있습니다.

위 내용은 화살표 함수와 일반 함수의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.