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하게 함수를 만든다고 좋은것이 아니라는 것이다.

 

노마드 코더 유튜브 참고했습니다!

https://www.youtube.com/watch?v=WHAfp-1JPMg

'개발 > Javascript Concept 33개' 카테고리의 다른 글

7. Expression vs Statement  (0) 2019.05.02
6. Scope  (0) 2019.04.23
1. Call Stack  (0) 2019.04.18

+ Recent posts