2011-09-07 3 views
0

자바 스크립트 파일에있는 클래스의 모든 public 속성을 표시하는 코드 작업 중입니다. 현재 사용자가 텍스트 상자에 클래스 이름을 입력합니다. 사용자가 텍스트 상자에 클래스 이름을 입력하는 대신 자바 스크립트 파일에있는 클래스 목록을 표시하고 사용자가 원하는 클래스를 선택할 수있게하려고합니다.어떻게하면 자바 스크립트 파일에있는 모든 클래스 이름을 가져 옵니까?

C#의 솔루션은 dll을로드하고 Assembly.getTypes() 함수를 사용하여 어셈블리에서 모든 유형을 가져 오는 것이 었습니다. 그러나 자바 스크립트 파일에서 모든 클래스 유형을 찾으려고합니다.

이것이 가능합니까? 자바 스크립트가 해석 된 언어이므로 문제가 될까요?

도움을 주시면 감사하겠습니다.

감사합니다.

+3

정확하게 "수업"이라고 부르는 것은 무엇입니까? –

+3

자바 스크립트의 클래스는 본질적으로 함수이고 함수와 클래스는 구분하기가 매우 어렵다고 생각합니다. – MrMisterMan

+0

클래스는 객체를 만들 수있는 모든 유형입니다. 예를 들어 function myclass() {this.aProp = 0; this.bprop = 0;} 다음 문을 사용하여 myClass의 onject를 만들 수 있습니다. var myObj = new myClass(); – Ramya

답변

0

클래스는 JavaScript의 함수 일 뿐이며 함수는 변수입니다. 이 같은 클래스를 정의하는 경우 :

function myClass() { 
    // ... 
} 

가깝지만 전역 변수 (window.myClass)이된다, 그래서 당신은 모든 정의 (글로벌) 클래스를 찾기 위해 창 개체를 한 번 봐 걸릴 수 있습니다.

+0

도움 주셔서 감사합니다. 나는 (창에서 var에 CL) \t에 대해 다음 \t { \t \t document.writeln을 ("

"+ CL + "

") \t} 그것은 onbeforeunload, 상태, 문서 등의 모든 미리 정의 된 속성과 funtioncs을 표시 시도 onmessage, onblur, onunload, event, self, clientInformation 등등. 함수에 직접 언급하면 ​​"windows.myClass"라는 전체 함수 코드가 표시됩니다. 그래서 위의 코드와 함께 왜 이해가 안 돼요. 내가 누락 된 것이 있습니까? – Ramya

+0

'for (var cl in window)'는 값이 아닌 인덱스를 제공합니다. -'window [cl]'가 당신이 원하는 것입니다. 그러나 이미주의했듯이 윈도우 객체에는 미리 정의 된 많은 속성이 있습니다. – Niko

+0

감사합니다. window [myclass]의 값은 'undefined'로 표시됩니다. 위의 코드를 (창에서 var cl)로 변경했을 때 {document.writeln ("

"+ 창 [cl] + "

"); , 함수의 이름은 표시되지 않습니다. 어떤 제안? – Ramya

관련 문제