2015-01-20 3 views
-2

함수를 호출 할 때 문제가 있습니다. 내 예 :자바 스크립트 함수 대 jquery 함수

jQuery(function($){ 
    var testFunc = function(){ 
     console.info('call jQuery testFunc'); 
    } 
}); 

function callJqueryTestFunc(){ 
    testFunc(); // error - function not exists 
} 

누군가 도와주세요. 예, testFunc()는 그래서 callJqueryTestFunc()

내에서, 즉 그 컨텍스트 내에서 존재하지 않는

+4

무엇을 도와 드릴까요? 그리고 당신이 영어의 부족에 대해 사과해야한다면, 적어도 약간을 제공하십시오! – ggdx

+1

js 범위에 대해 읽었습니다. 귀하의 경우에'testFunc' 변수는'callJqueryTestFunc' 스코프에 대해 부모가 아닌 다른 변수에 선언됩니다. –

+0

[JavaScript의 변수 범위는 무엇입니까?] (http://stackoverflow.com/questions/500431/what-is) 가능한 중복 -the-of-variables-in-javascript) – Grundy

답변

0

이 함수는 생성 된 스코프와 자식 범위에서만 볼 수 있어야합니다. annonymus jQuery 함수 안에 testFunc라는 함수를 만들었다면, 그 내부에서만 볼 수 있습니다. 당신의 jQuery annonymus 외부

window.testFunc = 함수() {...}

  • 이동을 그래서 같은

    • 사용 창 개체 :

      당신은 2 choces이 함수

    그러나 글로벌 범위를 많은 f 외교/물체. 깨끗하게하는 것이 좋습니다.

  • +0

    ... 및 하위 스코어 –

    +0

    감사합니다. 나는 그것이 분명하다고 생각했습니다. 나는 나의 설명을 fidex했다. – Beri

    +0

    감사합니다.이 작품과 나는 문맥을 이해했습니다. –

    1

    대단히 감사합니다, 당신은 함수에 변수를 전달과 같은 그 함수를 호출 할 수 있습니다

    var testFunc = function(){ 
    console.info('call jQuery testFunc'); 
    } 
    
    }); 
    
    function callJqueryTestFunc(testFunc){ 
    testFunc(); // now, it exist through closure 
    } 
    
    +0

    아니요, 'testFunc'는 전역 함수가 아니므로'window.testFunc'가 작동하지 않습니다. – undefined

    +0

    오 예! didnt는 첫번째로 브래킷을 알아 차린다! – surajck

    +1

    console.info (typeof window.testFunc())를 사용할 수 있으며 결과는 정의되지 않습니다. -/ –

    0

    testFunc은 다른 함수 (클로저)에 있으므로 함수 밖에서 액세스 할 수 없습니다.

    당신이 원하는 경우에 액세스, 당신은 그것을 window에 첨부 할 수 있습니다 jQuery로 아무것도

    jQuery(function($){ 
    
        window.testFunc = function(){ 
         console.info('call jQuery testFunc'); 
        } 
    
    }); 
    
    function callJqueryTestFunc(){ 
        testFunc(); // error - function not exists 
    } 
    
    1

    없습니다. 그것은 자바 스크립트 범위입니다. 예 :

    (function(){ 
    
        var testFunc = function(){ 
         console.info('call jQuery testFunc'); 
        } 
    
    }()); 
    
    function callJqueryTestFunc(){ 
        testFunc(); // error - function not exists 
    } 
    

    같은 오류가 발생합니다. 다른 함수 내부의 함수에 액세스 할 수 없습니다.