2010-06-16 14 views
2

호출 될 때 디버거에서 함수 정의까지 도달하지만 결코 함수 본문에 도달하지 못하는 생성자 역할을하는 함수가 있습니다. 내가 간과하는 일반적인 이유가있을 수 있습니까? 아래 예제 코드 :Javascript - 함수 호출이 함수 본문에 입력되지 않습니다.

myconstructor.js

function MyConstructor(optionalParam) { //this breakpoint gets hit 
    var newobj = {}; //breakpoint never hit 
    //code to check for null parameter 
    //other code 
}; 

main.js

var myConstructor = new MyConstructor(); 

내가 간과 뭔가해야합니다,하지만 난 그게 뭔지 볼 수 없습니다. firefox/firebug 나 VS는 오류나 경고를보고하지 않습니다.

감사합니다.

+0

자바 스크립트를 사용하지 않으므로 'optionalParam'을 생성자에 보내야하므로 'var myConstructor = new MyConstructor (optionalParam);'를 사용해야합니다. – Kyra

+0

MyConstructor가 무엇을 반환합니까? 반환 값이 없으면 변수 myConstructor는 정의되지 않은 상태가됩니다. –

+1

함수 본문에'console.log()'를 넣으려고 했습니까? –

답변

0

구문이 올바른 것처럼 보이며 인라인으로 작동합니다. 모든 스크립트 태그를 닫았는지 확인 했습니까?

<script src="myconstructor.js" type="text/javascript"> 

<script type="text/javascript"> 
    var myConstructor = new MyConstructor(); 
</script> 

작동하지 않습니다. 그게 아니라면, 나는 아무것도 없다.

+0

태그가 닫혀 있지만 순서가 잘못되었습니다 (어리석은 실수입니다.) 스크립트 태그 관련 문제이므로 답변으로 표시됩니다. 감사. –

0

함수를 인스턴스화 할 수있는 클래스 내에 있어야하지 않습니까?

+1

자바 스크립트에 클래스가 없습니다. –

+0

아니요, 전역 적으로 (또는 더 정확하게 'window'내에서 선언됩니다.) 호출은 var myConstructor = new window.MyConstructor()와 마찬가지로 쉽게 호출 할 수 있습니다. 온전한 체크처럼, 나는 똑같은 방식으로 정의 된 다른 '클래스'를 가지고있다. (작동한다.) –

+0

흠, 나는 네가 맞다고 생각하지만, 나는 이것을 발견했다 : http://www.webmonkey.com/2010/02/make_oop_classes_in_javascript/ 어떤 의미인지 (문제의 원인이 아닐지도 모르지만) – vimist

관련 문제