2013-08-02 4 views
0

내 프로젝트에 3 개의 js 파일이 있고 각 파일에 약 15 개의 함수가 반복됩니다. 그들은 일종의 유틸리티 함수입니다. 나는 $ .extend 사용이 반복을 방지하려면 :jquery extend를 사용하여 함수를 포함하는 객체 만들기

$.extend({ 
    myFunction1 : function(){}, 
    myFunction2 : funciton(){},...and so on 
}); 

는 이러한 접근 방식은 완벽하게 작동하고 나는 어느 곳의 js 파일에 $ .myFunction1()를 호출 할 수 있었다.

그러나 이러한 모든 유틸리티 기능을 포함하는 개체를 만들고 싶었습니다. 그래서 내 다른 접근 방식은

MyApp = { 
    myFunction1 : function(){}, 
    myFunction2 : funciton(){}, ... and so on 
} 

같았다 그리고 나는 MyApp를 전역 변수이기 때문에 어디서든 3 개 파일) MyApp.myFunction1을 (를 호출 할 수 있었다.

하지만 전역 변수로 만들고 싶지는 않습니다. 내가 원하는 것은 $ .MyApp.myFunction1() 어디에서나 사용할 수 있습니다. 그것을 할 수있는 방법이 있습니까?

답변

0

필자가 볼 수있는 유일한 선택은 전역 개체입니다. 어디에서든지에 액세스하고 싶은 경우에는 전역이어야합니다.

대부분의 유틸리티 라이브러리를 보면 http://underscorejs.org/ 같은 것을 볼 수 있습니다. 그들은 전역 이름 공간 (MyApp 객체와 비슷한)을 사용합니다. 이름 공간은 '_'입니다.

각 개체에 개별적으로 함수를 추가하려고하면 각 개체의 메모리에 해당 개체를 낭비합니다.

관련 문제