C언어와 같이 선언식, 정의식 두 개로 분류해서 맨 위에 선언식을 나열하고 그 다음 맨 밑에 정의식을 두잖아???
근데 이런 low 언어가 아닌 언어들은 정의식 밖에 없어서 잘 모를텐데, 이런 방식이 사실 다 알게 모르게 다 작용이 될 거라고 생각이 들거든???????

자바로 예를 들면
A() {}
B() {new A()}
라고 한다면 A가 위에 있으니까 인식을 하고 A를 호출할 수 있다라고 보는게 맞는 거겠지??
역으로 
B() {new A()}

A() {}
A가 아래에 있어도 A는 호출이 되잖아??? 

그래서 질문 요지는 호출할 함수는 반드시 현재 위치의 함수보다 위에 있어야 하는 것이 fm이고 그게 올바른지 알고 싶어.
JS에서는 잘모르지만 

B() {new A();}

A() {}
와 처럼 되어야 되는 걸로 알고 있거든??

누가 명확하게 이것에 대해 설명해줄 전문가가 답변해줘.
C언어도 안해봤고 어수룩한 취준생이면, 잘 모르면 댓글 달지마 제발