code

JavaScript 코드를 실행하는 어색한 방법

codestyles 2020. 9. 6. 10:04
반응형

JavaScript 코드를 실행하는 어색한 방법


Flask 애플리케이션에서 Google+ 로그인을 구현하기위한 Google 자습서 에서 개발자가 JavaScript 코드를 실행하는 데 종종 어색한 방법을 사용한다는 것을 발견했습니다.

하는 대신

var a = foo(bar);

나는 이것을 본다 :

var a = (function() {
  return foo(bar);
})();

이상하게하는 이유는 무엇입니까?


이것은 좋지 않은 예입니다. 다음을 고려하세요:

var a = (function(){
    var ret = {};
    ret.test = "123";
    function imPrivate() { /* ... */ }
    ret.public = function() { imPrivate(); }
    return ret;
})();

a변수 테스트 및 공용 함수가 포함되지만 imPrivate에 액세스 할 수 없습니다. 이것은 공용 변수와 개인 변수를 처리하는 일반적인 방법입니다.

이 함수가 괄호와 괄호로 묶여있는 이유를 참조하십시오 . 더 많은 정보를 위해서.


var a = (function() {
  return foo(bar);
})();

이 경우 이것은 정말로 불필요하지만 이것은 잘못된 것이 아니며 오류가 발생하지 않습니다.

그러나 IIF때로는 다음과 같이 사용합니다 module pattern.

var a = (function() {
  /* some other code in own scope */
  return foo(bar);
})();

이 경우 IIF는 단지 module무언가를 외부로 내보내는 것입니다.


클로저 함수는 함수의 일부 속성 / 메소드를 캡슐화하는 데 사용됩니다. 다른 언어의 사적 / 공적 원칙과 매우 유사합니다.

이 주제에 대한 자세한 내용은 모듈 패턴 아래 에서 찾을 수 있습니다.

참고 URL : https://stackoverflow.com/questions/21528187/awkward-way-of-executing-javascript-code

반응형