일반 함수와 화살표 함수의 차이점
1. this 객체 바인딩
일반 함수
실행 주체에 따른 this가 동적으로 바인딩
1) 함수 실행 시 전역(window)객체로 바인딩
2. 메소드 실행 시 메소드를 소유하고 있는 객체를 바인딩
3. 생성자 실행 시에는 새롭게 만들어진 객체를 바인딩
-> 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정
화살표 함수
ES6부터 새로 추가된 익명 함수
즉시 실행이 필요할 경우에 사용
항상 상위 스코프의 this를 바인딩 (정적 바인딩)
또한, call, apply, bind 메소드를 사용하여 this를 변경할 수 없음
2. 생성자 함수로 사용 가능 여부
일반 함수는 생성자 함수로 사용 가능
화살표 함수는 생성자 함수로 사용 불가
-> prototype 프로퍼티 존재 x
3. arguments 사용 가능 여부
일반 함수에서는 함수가 실행될 때 암묵적으로 arguments 변수가 전달되어 사용 가능
화살표 함수에서는 arguments 변수가 전달되지 않음
'Frontend > JavaScript' 카테고리의 다른 글
$(document).ready() 와 window.onload 의 차이점 (0) | 2024.07.01 |
---|---|
자바스크립트의 동작 원리 (0) | 2024.02.03 |
[JavaScript] 디바운싱과 쓰로틀링 (0) | 2024.01.31 |
window 객체의 opener 사용하기 (0) | 2023.10.15 |
자바스크립트 null, undefined, NaN의 차이 (0) | 2023.10.08 |