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