Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 일반 함수와 화살표 함수?

<시간/>

일반 함수와 화살표 함수

화살표 기능 코드를 간결하게 작성하는 데 사용됩니다. 두 기능 모두 일반 화살표 비슷한 방식으로 작동하지만 그들 사이에는 몇 가지 차이점이 있습니다. 이러한 차이점에 대해 간단히 논의해 보겠습니다.

화살표 함수의 구문

let x = (params) => {
// code
};

일반 함수의 구문

let x = function functionname(params){
// code
};

"이" 키워드의 사용

화살표 기능에서는 "this" 키워드를 사용할 수 없지만 일반 기능에서는 방해 없이 사용할 수 있습니다.

다음 예에서는 둘 다 일반 (직사각형) 및 화살표 (정사각형) 함수가 "num 개체 내부에서 사용되었습니다. ", len(length) 및 bre(breadth) 속성으로 구성됩니다. 우리의 목표는 square의 면적을 찾는 것입니다. (len*len) 화살표 기능 사용 및 사각형 면적 (len*bre) 일반 사용 함수. 하지만 " " 키워드는 화살표 기능에서 작동하지 않습니다. 정사각형 면적 값 "NaN으로 반환됩니다. " 반면 일반 함수는 사각형 의 정확한 면적을 얻었습니다. 출력에 표시된 대로.

<html>
<body>
<script>
   var num = {
      len: 12,
      bre: 13,
      square:() => {
         document.write(this.len * this.len);
      },
      rectangle(){
         document.write(this.len * this.bre);
      }
   };
   num.square();
   document.write("</br>");
   num.rectangle();
</script>
</body>
</html>

출력

NaN
156


'새' 키워드의 사용

화살표 기능 "건설 가능하지 않음 " 하지만 "호출 가능 " 그래서 키워드 "신규 "는 여기에서 작동하지 않지만 일반 기능 둘 다 "호출 가능 " 및 "건설 가능 " 따라서 "신규 " 키워드는 여기에서 작동합니다.

예시

다음 예에서 "new " 키워드 일부 인수가 일반 화살표 함수. 그러나 화살표 기능 이후 "건설 가능하지 않음 " 일반 기능에 대한 합법적인 출력을 얻는 반면 오류가 발생합니다. .

<html>
<body>
<script>
   var word = function(){
      document.write(JSON.stringify(arguments)); 
       ///  executes '{"0":"Tutorix","1":"Tutorialspoint"}' as output
   };
   new word("Tutorix","Tutorialspoint");  
   var newword = ()=> {
      document.write(JSON.stringify(arguments)); 
      //executes 'newword is not a constructor' as output
   };
   new newword("Tutorix","Tutorialspoint");
</script>
</body>
</html>