일반 함수와 화살표 함수
화살표 기능 코드를 간결하게 작성하는 데 사용됩니다. 두 기능 모두 일반 및 화살표 비슷한 방식으로 작동하지만 그들 사이에는 몇 가지 차이점이 있습니다. 이러한 차이점에 대해 간단히 논의해 보겠습니다.
화살표 함수의 구문
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>