2011-04-14 2 views
1

나는 일반적으로 내 응용 프로그램의 부분을 하나의 전역 객체 아래에있는 자신의 모듈과 파일로 분해합니다. 프로덕션 코드의 경우 모든 파일을 하나의 master.js 파일에 결합합니다. 왜냐하면 나는 다른 파일에 코드를 작성하고 있기 때문에로드되는 순서에 대해 걱정할 필요가 없습니다. 전역 객체 'App'이 있는지 확인하고, 모듈을 저장할 빈 객체를 만들지 않는지 확인합니다.초기화 함수의 최적화

따라서 10 개의 모듈이있는 경우 결합 된 파일에서 시작될 때 한 번만 실행하면 var App = App || {}; 번 10 번 실행됩니다. 내 질문은, 성능 측면에서 큰 문제는, 그 가치가 결국 들어가고 불필요한 코드를 제거하는 것입니다? 작은 응용 프로그램의 경우 큰 문제는 아니지만 더 큰 응용 프로그램에 사용하는 것이 나쁜 전략인지 궁금합니다.

// module_1.js 
var App = App || {}; 
App.Module_1 = (function(){ 
    // code 
}()); 

// module_2.js (different file) 
var App = App || {}; 
App.Module_2 = (function(){ 
    // code 
}()); 

답변

0

var App = App || {} 100 번 실행하더라도, 당신은 (단지 매우 느린 시스템에서) 차이를 통지하지 않습니다, 그래서 내가 말할 것 : 그냥 둡니다.

일반적으로 조기에 최적화하지 말고 실제 병목 현상이있는 곳을 찾아 최적화하십시오.

BTW, 그 여분의 익명 자기 호출 기능이 필요하지 않습니다 :

App.Module_X = function(){ 
    // code 
}; 

당신에게 변수를 사용하는 경우 var 이미 App.Module_X의 범위 내에서 사용하여 선언.

+0

아, 감사합니다! 예, 이제 저는 self-invoking 함수가이 질문과 관련이 없다는 것을 알게되었습니다. 그 (것)들을 쓰는 데 익숙했던 저는 자주 접근해야하는 물건을 돌려줍니다. – Moudy