그러나 글로벌 관점에서 볼 때 이는 우리가 제어하기 어려운 몇 가지 상황으로 이어질 것입니다. 동일한 이름을 가진 변수, 여러 함수가 글로벌 변수를 공유한 후의 값 변환... 등이 있습니다. 따라서 때로는 일부 간단한 전역 변수의 경우 자체 실행 함수 폐쇄 방법을 사용하여 다른 방법으로 처리할 수 있습니다.
예: 웹 페이지가 로드될 때 제공하려고 합니다. 웹 페이지가 닫힐 때 다른 프롬프트를 표시하는 프롬프트
다음 코드는 위 기능을 구현합니다
var msg1 = "Welcome!"; // 전역 변수 정의
var msg2 = "Goodbye!" // 다른 전역 변수 정의
window.onload = function( ) {
경고(msg1);
}
window.onunload = function() {
경고(msg2)
}
이 두 개의 전역 변수 코드 조각에 사용되었습니다. 간단한 기능을 구현하는 것뿐입니다.
게다가 전역 변수가 너무 많아서 기억해야 합니다. msg1은 환영할 때의 변수이고, msg2는 닫을 때의 변수입니다... 더 많은 변수가 있어도 기억할 수 있나요?
다음은 동일한 기능이지만 자체 실행 기능 폐쇄 방법을 사용합니다.
(function() {
var msg = "Hello, world!";
window.onload = function() {
alert (msg);
}
})();
(function() {
var msg = "Hello, world!";
window.onunload = function() {
Alert(msg);
}
})();
후자의 접근 방식이지만 코드는 늘어났지만:
1) msg 변수는 함수 내에서 각각의 Valid에서만 실행됩니다. 다른 전역 변수와 혼동이 발생하지 않습니다.
2) 코드 구조가 더욱 명확해집니다.
3) 전역 변수가 많이 사용되는 상황을 해결합니다.
위 내용은 제 개인적인 이해일 뿐입니다. 실제 전문가의 의견을 부탁드립니다!