여기에 표시되는 특정 구문에 대한 요점은 없습니다. 이러한 유형의 구조에서 IIFE를 사용하는 이유는 선언 할 필요가 있고 객체에서 사용할 수 있지만 공개적으로 액세스 할 수 없거나 전역 네임 스페이스 또는 인스턴스를 방해하지 않으려는 정적 데이터가있는 경우입니다 데이터.
표시 한 코드는 그 중 어떤 것도 표시하지 않으므로 표시 한대로 실제로 이점을 제공하지 않습니다. 그러나 객체 외부에 선언 된 다른 변수가 있지만 IIFE 안에 있으면 IIFE는 객체를 보호하고 동봉하고 외부와 격리시킵니다. 예를 들어
,이 있었다면 그런 다음
Visualizer = (function() {
var counter = 0;
function Visualizer() {
counter++;
...
}
Visualizer.prototype.getCount = function() { return counter; }
...
return Visualizer;
})();
var viz = new Visualizer();
이의 인생은 비주얼의 모든 인스턴스의 모든 방법을 사용할 수있을 것이라고 변수 counter
을 둘러싸 일 수 있지만, 외부 세계와 분리 것을 IIFE는 잠재적 이익을 제공 할 것입니다.
글쎄, 그 구체적인 경우에는별로 도움이되지 않지만, 도우미 기능이 필요하다면 어떨까요? 그것은 개인 정보를 보호하고 글로벌 범위로 유출되지 않기 때문에 유용합니다. – elclanrs
도우미 함수를 래퍼에 넣는 것과 마찬가지로? 함수에 두는 것의 차이점은 무엇입니까? – natecraft1
이렇게하면'new'를 호출 할 때마다 도우미 함수를 생성하게 될 것입니다. – elclanrs