예제의 이름 공간에 클래스를 생성 할 때.js 프로토 타입 프레임 워크로 namespacing
는
em.components.grid.Popup = Class.create(
{
initialize: function(params){
...
},
show:function(){
// create or show
}
});
을 em.components.grid합니까 나는 위의 네임 스페이스 경로를 사용하는 경우 I 쇼 방법에 액세스 할 수있는 다른 클래스에서이 평균.
// Another class in prototype
em.components.grid.Popup.show();
또는 show class에 액세스하려는 사용자의 새 클래스가 동일한 네임 스페이스에 있어야합니다.
다른 언어의 패키지와 비슷한 이름 공간입니다. 네임 스페이스를 제공하면 모든 클래스를 예를 들어 한 네임 스페이스에 유지하고 다른 네 클래스는 다른 네임 스페이스의 그리드와 관련되지 않게 유지할 수 있습니다.
업데이트 위의 두 가지 질문이 생겼습니다. 위와 같은 클래스를 같은 네임 스페이스로 만듭니다. 그런 다음 다른 js 문서에서 클래스를 인스턴스화합니다.
var popup = new em.components.grid.Popup()
그런 다음 팝업은 전역 변수가 아니겠습니까? 나는 가능한 한 내 파일에 갖고 싶지 않습니다. 내가 고유 한 이름 공간을주는 데 모든 어려움을 겪었던 것처럼 보입니다. 그런 다음 js 파일의 전역 변수에 클래스의 인스턴스를 만듭니다.
팝업의 경우 전역으로 설정하는 것이 가장 좋으며 롤오버 이벤트에서 생성하고 롤아웃 이벤트에서 제거하는 것이 가장 좋습니다.
//pseudo code
$$('domelementClass').observe('mouseover', function(event) {
var popup= new em.components.grid.Popup(event.target);
})
위의 문제는 롤아웃에서 제거 할 참조가 없습니다.
누구든지 나에게 이것을 설명 할 수 있습니까? – Chapsterj
누구나 도움을 받으시겠습니까? 좀 더 자세하게 설명 할 수 있도록 내 질문을 업데이트했습니다. – Chapsterj