2014-09-25 2 views
1
(function(){ 

    var someValue = 5; 

    function myFunction(input) = { 
    return someValue * input; 
    }; 

})(); 

필자는 자체 실행 기능을 가지고 있습니다.이 기능에는 많은 기능이 포함되어 있으며, 기능 중에는 전역으로 만들고 싶습니다. 일반적으로 전역 범위에서 선언 할 것이지만 자체 실행 기능에만 국한된 변수를 참조 할 수 있어야합니다.익명 자체 실행 기능 내에서 전역 기능을 정의 하시겠습니까?

자체 실행 기능을 모두 제거하지 않고 전역 적으로 액세스 할 수있게 만드는 가장 좋은 방법은 무엇입니까 (따라서 전역 공간을 변수로 버림)?

답변

3

전역 window 개체에 기능을 추가 할 수 있습니다. 즉각적인 기능이 실행 된 후

(function(){ 

    var someValue = 5; 

    window.myFunction = function (input) { 
    return someValue * input; 
    }; 

})(); 

, 당신은 myFunction()를 호출 할 수 있습니다.

2

또는 ntalbs가 제안한 것과 본질적으로 같은 결과를 얻을 수 있습니다.

var myFunction; 
(function(){ 
    var someValue = 5; 
    myFunction = function (input) { 
     return someValue * input; 
    }; 
})(); 

console.log(myFunction(4), window.myFunction); // output: 20, function(input){return someValue * input} 
관련 문제