2010-06-16 101 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

不確定,因爲我不使用JavaScript,但你需要這樣發送'optionalParam'給構造函數,所以使用'var myConstructor = new MyConstructor(optionalParam);'。 – Kyra 2010-06-16 19:45:07

+0

MyConstructor是否會返回任何內容?如果沒有返回值,變量myConstructor最終應該是未定義的。 – 2010-06-16 19:46:15

+1

你有沒有嘗試把'console.log()'放在函數體內? – 2010-06-16 19:50:36

回答

0

您的語法看起來正確,並且它在內聯中工作。你確定你關閉了所有腳本標籤嗎?

​​

不起作用。如果那不是,我絕對沒有。

+0

標籤已關閉,但出現故障(愚蠢的錯誤。)標記爲答案,因爲它是一個腳本標籤相關的問題。謝謝。 – 2010-06-16 20:03:24

0

函數不一定要在類內部才能夠實例化嗎?

+1

Javascript沒有類 – 2010-06-16 19:50:16

+0

不,它是全局聲明的(或者更確切地說它是在'window'中聲明的)。所以調用可以很容易地變爲var myConstructor = new window.MyConstructor()。就像一個健全的檢查,我確實有其他'類'定義在這個相同的方式(工作)。 – 2010-06-16 19:51:43

+0

嗯,我想你是對的,但我發現這一點:http://www.webmonkey.com/2010/02/make_oop_classes_in_javascript/ 這是什麼意思(雖然它可能不是問題的原因) – vimist 2010-06-16 19:53:48