IIFE(Immediately Invoked Function Expression)란?
- 자기 자신을 일으키는 함수이다.
왜 사용하는가?
우리가 배열을 만들고 변수에 담아서
console.log() 함수를 이용한다면
브라우저에서 우리는 secretUsers를 확인할 수 있다.
1 2 | const secretUsers = ['Nicolas', 'Lynn', 'Stevey', 'Autumn']; console.log(secretUsers) | cs |
확인 뿐만 아니라 secretUsers라는 변수에 Jack이라는 문자열을 추가한다고 하면
당연히 secretUsers에 Jack이라는 문자열이 추가된다.
결국은 Javascript 변수는 Private하지 않다는걸 알 수 있다.
하지만!
IIFE를 사용한다면 Private하게 사용이 가능하다.
1 2 3 4 | (function() { const secretUsers = ['Nicolas', 'Lynn', 'Stevey', 'Autumn']; console.log(secretUsers); })(); | cs |
간단하다.
우리가 원하는 로직을 function으로 구현한 후에
괄호 사이에 function을 넣고 그 function을 다시 호출 () 해주면 된다.
그렇게 하고 다시 브라우저에서 secretUsers에 접근하려고 한다면
정의되지 않은 변수로 뜬다.
그래서 우리는 해당 변수를 브라우저에서 접근할 수 없게 된다.
결론
IIFE로 만든 함수들은 일회용으로 알고 있다.
처음 페이지가 로드될때 처음으로 실행될 함수에 대해서만 사용하는 것이다.
무작정 Private하게 함수를 만든다고 좋은것이 아니라는 것이다.
노마드 코더 유튜브 참고했습니다!
'개발 > Javascript Concept 33개' 카테고리의 다른 글
7. Expression vs Statement (0) | 2019.05.02 |
---|---|
6. Scope (0) | 2019.04.23 |
1. Call Stack (0) | 2019.04.18 |