2011-09-20 7 views
0

코딩의 도장 스타일로 머리를 감싸는 데 어려움을 겪고 있습니다. 그 이유는 클래스 스타일 코딩 때문입니다. 나는 AS 개발과 일부 Java를 수행했기 때문에 그것에 익숙해 져야한다. jquery 스타일의 DOM 작업을 일부 수행했지만 시작하려는 프로젝트에 대한 프레임 워크 기반 설치가 더 필요합니다. 제 질문은 모든 것을 클래스로 선언문으로 작성한 다음 필요시 필요할 때 작성해야합니다. 또는 일반 자바 스크립트 모듈처럼 네임 스페이스를 사용하여 클로저 유형 함수를 작성할 수 있습니까? 나는 혼란스러워.도장 스타일 개발

예 데이터 관리를 담당하는 일련의 메소드가 필요합니다. 그런 다음 특별한 아약스 호출을 처리하는 다른 메소드 콜렉션이 필요하다. 별도의 js 파일에서 이러한 메소드 그룹 각각에 대해 선언 된 클래스를 작성합니까? 그런 다음 내 모든 클래스의 초기화를 처리하고있는 내 응용 프로그램 클래스 인 app.js에서 dojo.ready() {} 이전에이 두 클래스가 필요합니다. 일단 준비된 메서드를 호출하면 사용할 수 있습니다. 그 수업들.

내가 밖으로 나가기 전에 누군가 나를 똑바로 세울 수 있습니까? 해당 js 파일에 대한로드 요청을 수행해야하는 경우 준비된 방법을 사용해야합니다. 그렇다면 응용 프로그램 초기화를 시작할 때 많은 수의 클래스를 앞에 두는 것이 가장 좋습니다.

+0

이 질문에 답할 수있는 사람이 있습니까? – Chapsterj

+0

Jeez man, 시간 (편집 : 죄송합니다, 3 시간, 여전히 적용됨)은 답변을 기다리는 데 그리 오래 걸리지 않습니다;) 지금은 글을 쓸 것입니다. –

+0

헤이 켄은 뻔뻔하게 들릴 까봐 유감 스럽지만 나는 몇 시간이나 몇 시간 동안 동일한 질문을 완전히 읽지 않아서 좌절감을 느낀다. 나는 심지어 여러분이 인스턴스화 할 필요가없는 Util 클래스의 예제를 찾으려고 노력해 왔습니다.그것도 선언하고 새로운 myClass를 호출하는 것처럼 보입니다. 때로는 공개적으로 호출 할 수있는 util 또는 helper 클래스를 만들려고합니다. 위의 질문 중 일부에 답할 수있는 시간이 있다면 좋을 것입니다. 나는 참을성이 없어서 또 다시 미안해. – Chapsterj

답변

2

기술적으로 원하는 것은 무엇이든간에 - dojo.declare을 사용하거나 단순히 함수 멤버가있는 객체를 만드는 것입니다. 나는 후자를 할 것입니다. dojo.declare의 정교한 상속 고려 사항은 당신이이 경우에 사용하지 않을 총 과잉이 될 것이고, 당신이 원할 때 무엇이든 인스턴스화하는 것이 일반적으로 의미가 없습니다 몇 가지 유틸리티 메소드를 그룹화합니다. 함께 간단하게 그룹 유틸리티 메소드는, 나는이 라인을 따라 뭔가 할 의향이 될 것 모듈의 경우

: 바로 당신을 읽고 있어요 경우,

dojo.provide('my.utils'); 

my.utils = { 
    doSomething: function(){ 
     /* do something... */ 
    }, 

    doSomethingElse: function(){ 
     /* do something else... */ 
    } 
}; 

RE 로딩을하고 그래, 당신은 권리가있다 생각. 웹 페이지에서 페이지에 필요한 모듈을 dojo.require(...) (다른 모든 종속성이 더 필요하면 하나 일 수도 있습니다). 그런 다음이 모듈이로드 될 것으로 예상하는 페이지의 코드는 dojo.ready에 전달 된 함수 내에 있어야합니다. 이렇게하면 모듈이 비동기 적으로로드되는 경우 (예 : 교차 도메인 로더 사용)에도 코드가 계속 작동합니다. dojo.ready은 구체적으로 (1) DOM이 준비 될 때까지 대기하고 (2) 해당 지점까지로드 된 모든 dojo.require 개의 모듈을 기다립니다.

모듈 자체 내에서 dojo.require 모듈이로드 될 때까지 기다릴 수 있도록 dojo.ready에 코드를 넣을 필요가 없습니다. 이것은 로더에 의해 자동으로 계산됩니다. (그러나 모듈의 일부 논리가 DOM 준비를 기다려야하는 경우에도 여전히 dojo.ready에 의존하게됩니다.)

나는 이전에 dojo.ready에 대해 작성했습니다. 어쩌면 도움이 될 것입니다. http://kennethfranqueiro.com/2010/08/dojo-required-reading/

+0

Ken 님의 자세한 게시물을 보내 주셔서 감사합니다. declare의 추가 기능이 필요하지 않으면이 전형적인 스타일이 있습니다. 또한 클로저 함수와 다른 자바 스크립트 패턴을 사용하여 네임 스페이스에 할당하고 require() 메소드로로드 할 수 있습니까? 그 나쁜 습관이있을 때 나는 모든 종류의 패턴을 쓰지 않기를 바랄뿐입니다. 많은 시간 동안 객체를 두 번 이상 사용할 필요가 없으므로 객체를 인스턴스화 할 필요가 없습니다. – Chapsterj

+0

당신은 그 모듈 안에서'my.utils'에 원하는 것을 표면 상으로는 할당 할 수 있습니다. 예, 즉시 호출되는 함수 표현식 내에 모듈의 본문을 두어 처리 할 클로저를 만드는 것이 일반적입니다. –

+0

나를 위해 그것을 정리해 주셔서 감사합니다. – Chapsterj