2013-03-04 2 views
3

html 페이지에 두 개의 js 파일이 있습니다. 첫 번째로 시작하는 경우 :js 파일의 반환 값

(function($){ 
    .. 
    .. 
    }(jQuery)); 

나는 return는 값이다, function($,varname)var를 삽입하고 다른 파일에 사용할 수 있습니까?

+2

하지'return'을,하지만 당신은 window''의 속성으로 할당 할 수 있습니다. –

답변

3

이 작업을 수행하려면 전역 변수가 필요합니다. 몇 가지 방법 중 하나로이 작업을 수행 할 수 있습니다. "Bacon"이라는 값을 다른 스크립트로 보내야한다고 가정 해 봅시다.

(function($){ 
    window.myScriptsExports = "Bacon"; 
}(jQuery)); 

// OR 

var myScriptsExports = (function($){ 
    // other code 
    return "Bacon"; 
    // NO other code 
}(jQuery)); 

// OR (not really recommended) 

(function($){ 
    // other code 
    $.myScriptsExports = "Bacon"; 
    // other code 
}(jQuery)); 
1

함수가 synchrone되어 가정하면, 당신은 전역 함수 설정할 수 있습니다 :

(function($){ 
    .. 
     var myvar = 666; 
     window.getMyVar = function() { 
     return myvar; 
     }; 
    .. 
    }(jQuery)); 

을하고 두 번째 파일이 한 이후에 가져온 경우 다른 함수에서 사용할 수 있습니다 :

(function($){ 
    .. 
     var myprevisouslysetvar = window.getMyVar(); 
    .. 
    }(jQuery)); 

파일은 자바 스크립트에서 중요하지 않습니다. 두 파일을 연결 한 상태에서 페이지가 똑같이 작동합니다 ("엄격한 사용"이있는 경우 세부 정보가 분리됩니다).

+0

편집이 끝난 후에 고맙습니다. – steo

2

당신은 같이가는 글로벌 네임 스페이스를 사용하여 코드를 향상시킬 수

(function($,global){ 
     var _obj = {}; 
     _obj.property1 = 'Property1'; 
     _obj.function1 = function() { console.log('Function 1');}; 
     global.myObject = _obj; 
    }(jQuery,window)); 

    //accessing 
    window.myObject.property1 
    //or 
    window.myObject.function1()