2013-05-27 127 views
-1

嘗試實例化另一個對象的構造函數方法內的對象時出現奇怪的錯誤。CoffeeScript:在實例化構造函數中的對象時出錯

編輯3

例如(有圖片):

這裏的JavaScript的

enter image description here

這裏的編譯CoffeeScript的

enter image description here

+0

@TJCrowder:我猜他的意思是[this](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20 %20%40object%20%3D%20new%20obj()%0A%20%20%20%20%40foo%20%3D%20%5B%5D%0A%20%20%20%20%40bar%20 %3D%20%5B%5D),但它仍不會生成他發佈的輸出。 Connor,請向我們展示一個演示此行爲的完整示例。 – Bergi

+2

您問題中的縮進不是您的CoffeeScript中的縮進。你的'@ foo'和'@ bar'賦值與'constructor'處於同一級別,它們不在裏面;參見[this example](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20%20%40object%20%3D%如果你不相信我,那麼20%(20%)20%40%20%3D%20%40%20%3D%20%20%40%20%40%20%3D%20% –

+0

你確定你的示例CoffeeScript不缺少'extends'嗎? –

回答

2

您可能有錯誤的縮進。只有@object = new obj()被認爲屬於constructor代碼,並且以下行將成爲構造函數本身的屬性。

如果你看不到,那麼你的代碼中可能有非空白或非製表符。還要確保你只使用標籤空白,而不是(如mu is too short指出),它們的組合。

在javascript中有一個對象作爲另一個對象的成員數據是不好的編程習慣嗎?

絕對不是,特別是因爲函數也是對象。幾乎所有的JSON或XML數據都嵌套在一起。什麼讓你覺得這可能是一個不好的做法?

+0

啊,[像這樣](http://coffeescript.org/#try:class%20MyClass%0A%20%20constructor%3A%20-%3E%0A%20%20%20 %20%20%20%20%20%40object%20%3D%20new%20obj()%0A%20%20%40foo%20%3D%20%5B%5D%0A%20%20%40bar%20 %3D%20%5B%5D)。很好的接收。 –

相關問題