2011-10-19 13 views
1

在我見過的代碼的幾個例子調用類時,以下幾點:Javascript類調用

var foo = new Foo.bar(); 

在它看來的方法被實例化時調用。如何建立一個班級結構來適應住宿?當我嘗試直接訪問一個方法時,像這樣調用一個新的類,我得到一個錯誤:調用匿名函數。

謝謝!

+0

它沒有在實例化後調用方法,它使用提供的函數作爲構造函數。它創建一個新的'Foo.bar'對象,而不是新的'Foo'對象,然後調用'bar'。 – zzzzBov

+0

'Foo'只是'bar()'構造函數的命名空間。 – jfriend00

回答

6
var Foo = {}; 
Foo.bar = function() { 
    this.variable = "something"; 
} 

var foo = new Foo.bar(); 
foo.variable === "something"; // true 

Foo是一個僞名稱空間,但實際上它只是一個對象。 bar是一個匿名函數,在這種情況下,它會在其作用域中保存一個var名稱variable