자바스크립트 함수객체, 기명함수 표현식

HyosikPark·2020년 10월 17일
0

Javascript

목록 보기
11/26

함수 = 객체

함수는 객체이기 때문에 매서드도 사용가능하고 프로퍼티를 추가하는 것도 가능하다.

function func(a,b, ...rest) {}

console.log(func.name) // func
console.log(func.length) // 2 매개변수 개수 출력
*나머지 표현식(...rest)은 존재하더라도 길이에 포함안됨.

함수에 프로퍼티를 추가
func.counter = 0;

console.log(func.counter) // 0

함수프로퍼티를 사용하는 이유는 클로저를 대체할 수 있다는 점이다. 함수 내부에서 선언된 변수는 외부에서 접근할 수 없는데 함수프로퍼티에 값을 저장하면 외부에서도 접근할 수 있다.

기명 함수 표현식

함수 내부에서 자신을 호출하는 경우에 사용한다. 함수 표현식에서만 사용가능하다.
화살표 함수일 경우에도 사용 불가능

let sayHi = function hi() {}

보통 함수내부에서도 자신을 호출할 때 sayHi()를 사용하지만 hi()로 호출하면 
안전한 점이 있다.

let copy = sayHi
sayHi = null

함수를 카피하고 기존 변수는 제거하거나 다른 용도에 사용하면 sayHi()를 호출할
경우 에러가 나게 되어있다. 하지만 기명 함수 표현식으로 호출하게 되면
에러를 방지할 수 있다.

0개의 댓글